Tag: 上传预览模式: 普通 | 列表
08-01
12

struts中post方式上传文件,enctype="multipart/form-data",re

struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file") 是null的问题分析

这两天连续看到有人提到:struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file")时候,得到一个Null,或者直接得到 java.lang.IllegalArgumentException 这样一个异常。

结合到自己以前也遇到过这个问题,于是上网搜索了一些资料,下面这位网友的说法我觉得有些道理,因此摘抄下来。(红色自己为别人的分析,我觉得有道理)

使用struts进行文件上传,如果有些参数没有完全定义在ActionForm中,需要从request.getParameter获取,在表单提交并且validate失败返回input页面时,这部分需要从request.getPrameter获取的参数数据都丢失了,即使再对request进行multipart解析也不能得到。

经过分析,发现struts的ActionServlet在接收到multipart请求之后,在RequestProcessor中会对request进行封装:MultiRequestWrapper,然后在Action执行完之后,又将已经封装的request重新还原。以下是部分代码,截直RequestProcessor:

查看更多...

Tags: NULL multipart/form-data 上传

分类:Struts | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 801