【问题标题】:Java-blueimp jquery file upload List<FileItem> is empty?Java-blueimp jquery 文件上传 List<FileItem> 为空?
【发布时间】:2014-11-19 22:04:39
【问题描述】:

我使用 Jquery 文件上传和后端 java。 我得到了

if(ServletFileUpload.isMultipartContent(request) is true.

但是

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

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

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

【问题讨论】:

    标签: jquery file-upload struts2 blueimp multiple-file-upload


    【解决方案1】:
    1. 这个改动没有意义,两个值(*//*.action)都是错误的,应该是/*

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

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

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

      首先尝试with a single file in an &lt;s:file/&gt; element,然后尝试with multiple files in a &lt;s:file/&gt; ,最后将Blueimp 的jQuery-File-Upload 添加到等式中。

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

    【讨论】:

    • 感谢您的信息。我尝试了 多个输入并且工作正常。我正在尝试从 jquery 实现基本 ui。所以我从 jquery 添加了所有必需的 js,前端工作正常。在 main.js 中,它调用 jquery-fileupload.js。我想根据更改 jquery-fileupload.js sturts2 和 Dropzone.js 一样吗?到目前为止,请求中正在接收多部分内容。请进一步告诉我。
    • 检查网络输出:如果它的行为类似于 dropzone.js,则按照该答案中的说明进行更改。 Struts2 不希望多部分请求中有那些 []。顺便说一句,它适用于 1 个文件吗?
    • 非常感谢。我可以在行动中获取文件。它可以与 jquery-fileupload.js 一起进行任何更改。我刚刚删除了“ 5000000 " 来自 struts.xml
    猜你喜欢
    • 1970-01-01
    • 2013-04-29
    • 2015-09-29
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    相关资源
    最近更新 更多