使用bootstrap-fileinput的问题:上传时upload.parseRequest(request)得到的List为空

最近在做一个项目时,使用bootstrap-fileinput上传文件时遇到一个问题:

DiskFileItemFactory factory = new DiskFileItemFactory();  
ServletFileUpload upload = new ServletFileUpload(factory); 
String uploadPath = basePath + "/upload";//设置下载目录
String tempPath = uploadPath +"/temp";//设置临时目录
File temp = new File(tempPath);
if(!temp.exists()){
	temp.mkdirs();
}
factory.setRepository(temp);//设置临时缓冲目录
List<FileItem> list = upload.parseRequest(ServletActionContext.getRequest()); //解析request请求  

for (FileItem fileItem : list) {
	        if (fileItem.isFormField()) {
                    if (fileItem.getFieldName().equals("resourceCategory")){
                         resourceCategory = fileItem.getString();
                    }
                }else{
                	if(fileItem.getName()!=null && !"".equals(fileItem.getName())){
                		fileItemName = fileItem.getName();
                		size = fileItem.getSize();
                		file= new File(realPath);
                		if(!file.exists()){
                			file.mkdirs();
                		}
                		File dest = new File(file+"/"+fileItemName);
                		InputStream ins = fileItem.getInputStream();  
                		OutputStream ous = new FileOutputStream(dest);  
                		try {  
                			byte[] buffer = new byte[1024];  
                			int len = 0;  
                			while ((len = ins.read(buffer)) > -1)  
                				ous.write(buffer, 0, len);  
                		}finally {  
                			ous.close();  
                			ins.close();  
                		}  
                	}
                }
            }
出现list为空或者[],使用的框架是s2sh,访问形式是.action,在网上找了好长时间,都说解决不了,要换,但是研究了之后,终于解决了,具体解决办法如下:

1.新建MyRequestParser类,重写parse方法,里面内容为空

public class MyMultiPartRequest extends JakartaMultiPartRequest{  
  
    @Override  
    public void parse(HttpServletRequest servletRequest, String arg1) throws IOException {  
          
    }  
      
}
2、最后在struts2的配置文件下增加下面内容

    <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest"   
          name="myMultiPartRequest" class="com.MyMultiPartRequest"   
          scope="default" optional="true"/>  
    <constant name="struts.multipart.handler" value="myMultiPartRequest" />   

配置完成后list就不为空了



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值