博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2+jquery+ajax实现上传&&校验实例
阅读量:6223 次
发布时间:2019-06-21

本文共 3040 字,大约阅读时间需要 10 分钟。

    一直以为ajax不能做上传,直到最近看了一些文章。需要引入AjaxFileUploaderV2.1.zip,下载链接:http://pan.baidu.com/s/1i3L7I2T

  代码和相关配置如下:

   js代码:

      

需要导入jquery星河ajaxfileupload.js,html代码:

    
         选择文件(*.xls格式)

struts2 配置:

uploadTemp

后端struts2 action代码:

// 上传文件所需属性    private String title;    private File uploadFile;    private String uploadFileContentType;    private String SavePath;    private String uploadFileFileName;    Log log = LogFactory.getLog(this.getClass());public String doUploadAndInsert() throws Exception {        PrintWriter out = null;        MsgBean msg = new MsgBean();        try {            HttpServletResponse response = ServletActionContext.getResponse();            response.setContentType("text/html;charset=utf-8");            out = response.getWriter();            if(getUploadFile().length()>2097152){                msg.setMsgName("SysDefectAction_doDefUploadAndInsert_fail");                msg.setMsgText(getUploadFileFileName()+"上传失败,文件太大。\r\n请不要上传超过2048KB的文件");                out.write(JSON.toJSONString(msg));                out.flush();                return null;            }            //后缀名限制            String suffixName = getUploadFileFileName().split("\\.")[1];            if(!"xls".equalsIgnoreCase(suffixName)){                msg.setMsgName("SysDefectAction_doDefUploadAndInsert_fail");                msg.setMsgText(getUploadFileFileName()+"上传失败,错误的文件格式!");                out.write(JSON.toJSONString(msg));                out.flush();                return null;            }            UUID uuid = UUID.randomUUID();            ServletContext servletContext = (ServletContext) ActionContext.getContext().get(ServletActionContext.SERVLET_CONTEXT);            String rootPath = servletContext.getRealPath("/");            File folder = new File(rootPath + "\\" + getSavePath());            if (!folder.exists()) {                folder.mkdir();            }            FileOutputStream fileOutputStream = new FileOutputStream(rootPath + "\\" + getSavePath() + "\\" + uuid+"_"+getUploadFileFileName());            FileInputStream fileInputStream = new FileInputStream(getUploadFile());            byte[] buffer = new byte[1024];            int len = 0;            while ((len = fileInputStream.read(buffer)) > 0) {                fileOutputStream.write(buffer, 0, len);            }            fileInputStream.close();            log.info("上传文件接收成功,文件存放全路径为:" + rootPath + "/" + uuid+"_"+getUploadFileFileName());             } catch (Exception e){            msg.setMsgName("SysDefectAction_doDefUploadAndInsert_fail");            msg.setMsgText(getUploadFileFileName()+"上传失败,"+e.getMessage());            out.write(JSON.toJSONString(msg));            out.flush();        } finally{            out.close();            return null;        }    }

 

转载于:https://www.cnblogs.com/onmyway20xx/p/4560523.html

你可能感兴趣的文章
Gradle-user guide-第6章 构建脚本基础(译)
查看>>
NO.5 选择适合您的禅道项目管理软件安装方法
查看>>
我的友情链接
查看>>
linux编辑器之最利器--vim
查看>>
Ubuntu 安装maven3
查看>>
Python 的 zipfile 模块
查看>>
转载:EntityManager的find()与getReference()的区别
查看>>
SQL语句学习之路9
查看>>
夏普能否依靠IGZO显示屏技术改变“命运”
查看>>
MySQL 5.7权限的介绍
查看>>
LVS原理详解
查看>>
URLRewrite 研究
查看>>
jdk分析工具:jps和jstack
查看>>
sql性能优化总结
查看>>
windows 7 使用注册表创建影子账户和隐藏账户
查看>>
一个有用的python装饰器 -- 为执行程序加锁
查看>>
linux shell
查看>>
xfs文件系统优化
查看>>
eclipse.ini参数的含义和设置
查看>>
VirtualBox中常用的网络设置
查看>>