使用apache fileupload

时间:2015-07-04 06:44:00

标签: java file-upload stripes

我一直在尝试将ck编辑器文件上传与使用Stripes 1.8开发的应用程序集成,但未能成功。 从CK编辑器文件bowser(普通html),我能够点击一个处理文件上传功能的servlet。但是,以下代码段无法执行。

// get uploaded file list
// the following code uses commons-fileupload-1.3.1
// the imports are removed for crispiness of the code
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
if (ServletFileUpload.isMultipartContent(request)) {
   try {
      List files = upload.parseRequest(request); // returns an empty list
   }catch (Exception e) { // no error handling}
      e.printStackTrace();
   }
}

可能是什么原因,是否有某种解决方法。 顺便说一句,相同的代码在Struts 1.3应用程序中运行良好。

1 个答案:

答案 0 :(得分:0)

问题在于web.xml设置

<filter-mapping>
    <filter-name>stripesFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

当它改为

<filter-mapping>
    <filter-name>stripesFilter</filter-name>
    <url-pattern>/action/*</url-pattern>
</filter-mapping>

该请求已经过解析,因为它经过了条带servlet过滤器。由于输入流已被前一个进程占用,因此Commons FileUpload不再可用于解析。