HTTPServletRequest不包括请求参数flashUploadFiles中的文件数据

时间:2014-02-27 12:51:45

标签: java servlets file-upload

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

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
}

但是,项目列表始终为空。

有趣的是,如果我重新启动我的Jetty服务器,同样的方法可以工作,我可以获得项目列表。我在Tapestry配置中遗漏了什么? 是否有其他方法可以使用参数“flashUploadFiles”(仅包含文件名)来上传文件的内容? 我不能使用request.getPart()方法,因为我们还没有迁移到Servlet 3.0

0 个答案:

没有答案