ServletFileUpload.parseRequest()只能在每个请求中调用一次吗?

时间:2010-02-19 17:51:01

标签: grails file-upload apache-commons

我正在为Grails应用程序使用自定义SpringSecurityFilter,我正在尝试使用commons上载库来处理请求。我能够在过滤器中处理请求,但一旦它到达我的控制器,没有任何值可用。

HttpRequest只能由上传库处理一次吗?我猜它正在清理临时文件。有没有办法保留它们,以便可以在控制器级别再次处理它们?

我需要查询安全性的表单参数(由于客户端我无法将其添加到http标头中)但是一旦我得到该值,它似乎会擦除请求以进行进一步处理。

1 个答案:

答案 0 :(得分:5)

是。请求只能解析一次。

我在Apache的FAQ页面上看到了FileUpload的答案。

问题:为什么parseRequest()不返回任何项?

答案:“这种情况最常发生在请求已被解析或以其他方式处理时。由于输入流已经被前一个进程占用,因此Commons不再可以解析它文件上传“。

参考:http://commons.apache.org/fileupload/faq.html