2

我使用带有后端 java 的 Jquery 文件上传。我得到

if(ServletFileUpload.isMultipartContent(request) is true.

List<FileItem> items = uploadHandler.parseRequest(request);

返回空。我之前没有访问过请求参数。

我用谷歌搜索,发现从 web.xml 更改为/*to /*.action将解决问题。但是通过这种更改,struts2 项目没有运行。

4

1 回答 1

1
  1. 这种变化没有意义,两个值 (*//*.action) 都是错误的,应该是/*

  2. 你永远不应该自己解析多部分请求,尤其是当有像 Apache Commons FileUpload 这样的工具为你做这件事时,很可能比你更好。引用 BalusC

    解析这样的流需要精确的背景知识,了解如何指定和构造多部分表单数据请求。要创建一个完美的多部分解析器,您必须编写大量代码。但幸运的是,Apache Commons FileUpload 多年来证明了它的稳健性。

  3. Struts2 已经处理了这个问题。您只需要了解文件上传过程在 Struts2 中是如何工作的。

    首先尝试在一个<s:file/>元素中使用单个文件,然后在 a 中使用多个文件<s:file/> ,最后将Blueimp 的 jQuery-File-Upload添加到等式中。

    请注意,对于外部库,可能需要进行一些小的修改,例如Dropzone.js(拖放上传器)。

于 2014-11-20T09:35:28.007 回答