zoukankan      html  css  js  c++  java
  • 转:upload.parseRequest为空

    FileItemFactory factory = new DiskFileItemFactory();  
    ServletFileUpload upload = new ServletFileUpload(factory);  
    upload.setHeaderEncoding("UTF-8");  
    List items = upload.parseRequest(request);   

    上传是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= "上传文件扩展名是不允许的扩展名。 只允许" + extMap.get(dirName) + "格式。";  
      14.             this.writeResponse(response, temStr);  
      15.             return;  
      16.         }  
      17.   
      18.         SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");  
      19.         String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;  
      20.   
      21.         try {    
      22.             InputStream in = new FileInputStream(file);    
      23.             File uploadFile = new File(savePath, newFileName);    
      24.             OutputStream out = new FileOutputStream(uploadFile);    
      25.             byte[] buffer = new byte[1024 * 1024];    
      26.             int length;    
      27.             while ((length = in.read(buffer)) > 0) {    
      28.                 out.write(buffer, 0, length);    
      29.             }    
      30.     
      31.             in.close();    
      32.             out.close();    
      33.         } catch (FileNotFoundException ex) {    
      34.             ex.printStackTrace();    
      35.         } catch (IOException ex) {    
      36.             ex.printStackTrace();    
      37.         }    
  • 相关阅读:
    jsp 特殊标签
    poj 1753 Flip Game 高斯消元 异或方程组 求最值
    zoj 3155 Street Lamp 高斯消元 异或方程组 求方案数
    poj1222 EXTENDED LIGHTS OUT 高斯消元解异或方程组 模板
    zoj 3930 Dice Notation 模拟
    zoj 3157 Weapon 线段树求逆序对数
    hdu 1242 Rescue BFS+优先队列
    hdu 3466 Proud Merchants 贪心+01背包
    zoj 3689 Digging 贪心+01背包
    hdu 2602 Bone Collector 01背包模板
  • 原文地址:https://www.cnblogs.com/blueherb/p/3998583.html
Copyright © 2011-2022 走看看