struts中不限数量的多文件上传

曾经见过有人给出的最蠢的一个做法,是在ActionForm里放了20个Formfile 类型的变量。
其实只需要下面一段代码即可。 

       

String dirPath = getServlet().getServletContext().getRealPath("/") 
                         + "/upload"; 
        Hashtable fileh = actionForm.getMultipartRequestHandler(). 
                          getFileElements(); 
        for (Enumeration e = fileh.keys(); e.hasMoreElements(); ) { 
            String key = (String) e.nextElement(); 
            try { 
                FormFile formfile = (FormFile) fileh.get(key); 
                String filename = formfile.getFileName().trim(); //文件名 
                if (!"".equals(filename)) { 
  //不同的浏览器传上的文件名可能有区别,有的是全路径的 
//在这里保存文件 
                    InputStream ins = formfile.getInputStream(); 
                    OutputStream os = new FileOutputStream(dirPath + 
                            File.separatorChar 
                            + filename); 
                    int bytesRead = 0; 
                    byte[] buffer = new byte[8192]; 
                    while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { 
                        os.write(buffer, 0, bytesRead); 
                    } 
                    os.close(); 
                    ins.close(); 

                } 
            } catch (Exception ex) { 
                logger.debug("出错了", ex); 
            } 
        } 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值