Java HTTPServletRequest在请求参数flashUploadFiles中不包含文件数据

Java HTTPServletRequest在请求参数flashUploadFiles中不包含文件数据,java,servlets,file-upload,Java,Servlets,File Upload,浏览器请求不包含有效负载。例如: Request Payload: ------------Ij5ei4ae0cH2GI3ei4KM7Ef1cH2Ef1 Content-Disposition: form-data; name="Filename" uploadAsset1.csv ------------Ij5ei4ae0cH2GI3ei4KM7Ef1cH2Ef1 Content-Disposition: form-data; name="collection" 26 ----------

浏览器请求不包含有效负载。例如:

Request Payload:
------------Ij5ei4ae0cH2GI3ei4KM7Ef1cH2Ef1
Content-Disposition: form-data; name="Filename"

uploadAsset1.csv
------------Ij5ei4ae0cH2GI3ei4KM7Ef1cH2Ef1
Content-Disposition: form-data; name="collection"

26
------------Ij5ei4ae0cH2GI3ei4KM7Ef1cH2Ef1
Content-Disposition: form-data; name="flashUploadFiles"; filename="uploadAsset1.csv"
Content-Type: application/octet-stream


------------Ij5ei4ae0cH2GI3ei4KM7Ef1cH2Ef1
Content-Disposition: form-data; name="Upload"

Submit Query
------------Ij5ei4ae0cH2GI3ei4KM7Ef1cH2Ef1--
“flashUploadFiles”参数包含有效负载,但有时我无法解析内容。我使用tapestry框架和apache.commons.io来获取项目。例如:

if (ServletFileUpload.isMultipartContent(req)) {
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List<FileItem> items = null;
            try {           
                items = upload.parseRequest(req);
            } catch (FileUploadException e) {               
                e.printStackTrace();
            }
//items.size is zero
}
if(ServletFileUpload.isMultipartContent(req)){
FileItemFactory=new DiskFileItemFactory();
ServletFileUpload upload=新的ServletFileUpload(工厂);
列表项=空;
试试{
items=upload.parseRequest(请求);
}捕获(文件上载异常){
e、 printStackTrace();
}
//项目。大小为零
}
但是,项目列表始终为空

有趣的是,如果我重新启动Jetty服务器,同样的方法也会起作用,并且我能够获得项目列表。Tapestry配置中是否缺少某些内容? 是否有其他方法使用参数“flashUploadFiles”(仅包含文件名)获取上载文件的内容?
我无法使用request.getPart()方法,因为我们尚未迁移到Servlet 3.0

您是否检查了文件是否为空?是的!文件就在那里,事实上,我甚至检查了请求的contentlength,并且随着我上传的文件的大小而变化。