FORM的ENCTYPE="multipart/form-data" 时request.getParameter()值为null问题的解决
2012-06-08 17:42
936 查看
解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
使用jspsmartupload表单中enctype="multipart/form-data"的意思,是设置 表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了 multipart/form-data,才能完整的传递文件数据
但是设置了 enctype="multipart/form-data" ,除了file类型表单能获取到,其他value通过request.getParameter都得不到。这种情况下我们可以利用组件来解决该问题,例如用 jspsmartupload组件
com.jspsmart.upload.SmartUpload su = new com.jspsmart.upload.SmartUpload();
su.initialize(pageContext);
su.service(request, response);
su.setTotalMaxFileSize(100000000);
su.setAllowedFilesList("zip,rar");
su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
su.upload();
String Name = su.getRequest().getParameter("Name");
String TYPE_ID =
su.getRequest().getParameter("Type");
通过
su.getRequest().getParameter("value");就可以了,su.upload()好象必须放在前面,测试中将su.upload()放在获取参数后面不成功。
关于用jspSmartUpload控件上传文件并附带参数的吐血体验
url:http://blog.csdn.net/thinker28754/archive/2007/05/26/1626844.aspx
用于上传数据的表单:
<form name="form1" method="post" action="servlet/Upfile"
enctype="multipart/form-data">
<p>请输入手机号</p>
<p>
<input
type="text" name="phone"
value="1234567890"/>
</p>
<p>图片上传(仅现于*.gif和*.jpg文件)</p>
<p>
<input
type="file" name="file1"/>
</p>
<p>
<input type="submit" name="submit" value="· 提交
·"/>
</p>
</form>
提交的后台的servlet
SmartUpload su =new SmartUpload();
su.initialize(this.getServletConfig(), request, response);
String
realPath = this.getServletContext().getRealPath("");
String
path=realPath+"/images";
su.setAllowedFilesList("gif,jpg");
su.upload();
int count=su.save(path);
msdnid=su.getRequest().getParameter("phone");//注意这是接收表单传过来的参数
System.out.println("msdnid="+msdnid);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
特别说明:用于接收表单参数的语句一定要放在su.upload();语句的后面,也就是说要在文件上传后再接收,否则
不管你怎么试接收到的结果总是"null".
这是我在苦苦试了一天在晕到前的2分钟试出来的,真的不容易呀!!!!!
在上述问题得到解决后,当所传的参数为汉字时则接收到的全是乱码,经过反复实验将表单页面的编码格式设成"gb2312"就解决了这个问题.
使用jspsmartupload表单中enctype="multipart/form-data"的意思,是设置 表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了 multipart/form-data,才能完整的传递文件数据
但是设置了 enctype="multipart/form-data" ,除了file类型表单能获取到,其他value通过request.getParameter都得不到。这种情况下我们可以利用组件来解决该问题,例如用 jspsmartupload组件
com.jspsmart.upload.SmartUpload su = new com.jspsmart.upload.SmartUpload();
su.initialize(pageContext);
su.service(request, response);
su.setTotalMaxFileSize(100000000);
su.setAllowedFilesList("zip,rar");
su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
su.upload();
String Name = su.getRequest().getParameter("Name");
String TYPE_ID =
su.getRequest().getParameter("Type");
通过
su.getRequest().getParameter("value");就可以了,su.upload()好象必须放在前面,测试中将su.upload()放在获取参数后面不成功。
关于用jspSmartUpload控件上传文件并附带参数的吐血体验
url:http://blog.csdn.net/thinker28754/archive/2007/05/26/1626844.aspx
用于上传数据的表单:
<form name="form1" method="post" action="servlet/Upfile"
enctype="multipart/form-data">
<p>请输入手机号</p>
<p>
<input
type="text" name="phone"
value="1234567890"/>
</p>
<p>图片上传(仅现于*.gif和*.jpg文件)</p>
<p>
<input
type="file" name="file1"/>
</p>
<p>
<input type="submit" name="submit" value="· 提交
·"/>
</p>
</form>
提交的后台的servlet
SmartUpload su =new SmartUpload();
su.initialize(this.getServletConfig(), request, response);
String
realPath = this.getServletContext().getRealPath("");
String
path=realPath+"/images";
su.setAllowedFilesList("gif,jpg");
su.upload();
int count=su.save(path);
msdnid=su.getRequest().getParameter("phone");//注意这是接收表单传过来的参数
System.out.println("msdnid="+msdnid);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
特别说明:用于接收表单参数的语句一定要放在su.upload();语句的后面,也就是说要在文件上传后再接收,否则
不管你怎么试接收到的结果总是"null".
这是我在苦苦试了一天在晕到前的2分钟试出来的,真的不容易呀!!!!!
在上述问题得到解决后,当所传的参数为汉字时则接收到的全是乱码,经过反复实验将表单页面的编码格式设成"gb2312"就解决了这个问题.
相关文章推荐
- FORM的ENCTYPE="multipart/form-data" 时request.getParameter()值为null问题的解决
- FORM的ENCTYPE="multipart/form-data" 时request.getParameter()值为null问题的解决
- FORM的ENCTYPE="multipart/form-data" 时request.getParameter()值为null问题的解决
- struts中enctype="multipart/form-data",request.getParameter("file") 是null的问题分
- struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file") 是null的问题分析
- struts中enctype="multipart/form-data",request.getParameter("file") 是null的问题分
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法 ?
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
- JSP使用ENCTYPE="multipart/form-data"后request.getParameter无效问题Common-FileUpload组件解决方法
- JSP使用ENCTYPE="multipart/form-data"后request.getParameter无效问题Common-FileUpload组件解决方法
- (转)struts2开发环境中,enctype="multipart/form-data"上传文件时,request.getInputStream()为null
- 当FORM的ENCTYPE=&quot;multipart/form-data&quot; 时request.getParameter()获取不到
- struts2开发环境中,enctype="multipart/form-data"上传文件时,request.getInputStream()为null的原因(转http://topic.csdn.net/u/20101210/11/78454a19-7
- 关于enctype="multipart/form-data" ,后台request.getParameterMap()
- request.getParameterValues()与enctype="multipart/form-data"不能共用