上传是items一直是空list。导致原因是struts2把原始的原来S2为简化上传功能,把所有的enctype="multipart/form-data"表单做了wrapper最后把HttpServletResquest封装成 org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper 怪不得我的 ServletFileUpload.parseRequest(request)不行!!!

看我怎么改!废话不多说,直接贴代码

    1. MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper) request;
    2. File file = wrapper.getFiles("imgFile")[0];
    3. String fileName = wrapper.getFileNames("imgFile")[0];
    4. //检查文件大小
    5. if(file.length() > maxSize){
    6. String temStr= "上传文件大小超过限制。";
    7. this.writeResponse(response, temStr);
    8. return;
    9. }
    10. //检查扩展名
    11. String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
    12. if(!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)){
    13. String temStr= "上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。";
    14. this.writeResponse(response, temStr);
    15. return;
    16. }
    17. SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
    18. String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;
    19. try {
    20. InputStream in = new FileInputStream(file);
    21. File uploadFile = new File(savePath, newFileName);
    22. OutputStream out = new FileOutputStream(uploadFile);
    23. byte[] buffer = new byte[1024 * 1024];
    24. int length;
    25. while ((length = in.read(buffer)) > 0) {
    26. out.write(buffer, 0, length);
    27. }
    28. in.close();
    29. out.close();
    30. } catch (FileNotFoundException ex) {
    31. ex.printStackTrace();
    32. } catch (IOException ex) {
    33. ex.printStackTrace();
    34. }

转:upload.parseRequest为空的更多相关文章

  1. Spring Boot 使用 ServletFileUpload上传文件失败,upload.parseRequest(request)为空

    使用Apache Commons FileUpload组件上传文件时总是返回null,调试发现ServletFileUpload对象为空,在Spring Boot中有默认的文件上传组件,在使用Serv ...

  2. fileupload插件调用upload.parseRequest(request)解析得到空值问题

    得到的list长度是0,项目配置不能改变,没办法了,只能将HttpServletRequest强换成DefaultMultipartHttpServletRequest ,直接获取表单中的字段了.方法 ...

  3. SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题

    原因分析 首先我们来看下Spring mvc 中文件上传的配置 <bean id="multipartResolver" class="org.springfram ...

  4. upload&&download

    package am.demo;  import java.io.File;  import java.io.IOException;  import java.util.Iterator;  imp ...

  5. file upload download

    1. 文件上传与下载 1.1 文件上传 案例: 注册表单/保存商品等相关模块! --à 注册选择头像 / 商品图片 (数据库:存储图片路径 / 图片保存到服务器中指定的目录) 文件上传,要点: 前台: ...

  6. html5 file upload and form data by ajax

    html5 file upload and form data by ajax 最近接了一个小活,在短时间内实现一个活动报名页面,其中遇到了文件上传. 我预期的效果是一次ajax post请求,然后在 ...

  7. upload三种上传方式(上)---Servlet---post---commons-fileupload.1.2.1.jar方式请求上传文件

    上传前进行的配置选项: 1.在下方的Servers中,右键你的tomcat--open,选中下面两个配置. 第一个:Serve modules without publishing 作用:tomcat ...

  8. uploadify的碎碎念 upload

    uploadify是一个jquery插件,用来实现文件上传的功能. 20160724 看起来感觉挺麻烦的 一般会买一个html5版的. html <input id="custom_f ...

  9. common upload乱码

    request.setCheracterEncoding("utf-8"); DiskFileUpload.setHeaderEncoding("utf-8") ...

随机推荐

  1. 老男孩python学习自修第十四天【序列化和json】

    序列化是使用二进制的方式加密列表,字典或集合,反序列化是解密的过程:序列化开启了两个独立进程进行数据交互的通路 使用pickle进行序列化和反序列化 例如: pickle_test.py #!/usr ...

  2. JAVA不可变类(immutable)机制与String的不可变性--非常好.

    JAVA不可变类(immutable)机制与String的不可变性 https://www.cnblogs.com/jaylon/p/5721571.html

  3. delphi 子窗体只能最小化不能关闭的解决方案

    cnpack下载地址:http://www.cnpack.org/showdetail.php?id=726&lang=zh-cn 时候创建的子窗体不能关闭,点关闭按钮时子窗体最小化了. 出现 ...

  4. bootstrap簡介

    bootstarp是最受歡迎的前端開發框架,可以開發數適用pc.平板電腦和手機的web應用,是基於html.css和javascript.只要學會bootstarp,就代表具有web的開發的中級水準.

  5. oracle11g安装教程完整版

    来自: https://www.2cto.com/database/201701/588135.html 64位WIN7+oracle11g+plsql安装 1.下载Oracle 11g R2 for ...

  6. Windows & RabbitMQ:Shovel

    RabbitMQ的集群和高可用不适合跨域的情况,如果跨域可以使用Shovel或Federation. 描述:我们需要配置三台服务器:ServerA, ServerB, ServerC Step 1:安 ...

  7. Get started with Docker for Windows

    Welcome to Docker for Windows! Docker is a full development platform for creating containerized apps ...

  8. 检索 COM 类工厂中 CLSID 为 {91493441-5A91-11CF-8700-00AA0060263B} 的组件失败

    Symptoms When no user is interactively logged on to the server console, if you try to start a COM+ a ...

  9. hibernate多对多映射文件的配置

    user.hbm.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate ...

  10. IntelliJ IDEA Tomcat启动VM Options配置

    -server -XX:PermSize=512M -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8 JDK8中用metaspace代替permsize,因此在许 ...