有时用JSPsmartupload获取前台数据时,获取不到的原因

来源:互联网 发布:淘宝金利来男士钱包 编辑:程序博客网 时间:2024/05/01 23:09
    jspsmartupload上传文件,但是发现一个问题,用request.getParameter("name") 不能获得表单的数据,最后终于解决,留篇文章。

 

原因很简单: 注意更改from 属性啊!否则为null!用jspsmartupload上传文件,但是发现一个问题,用request.getParameter("name") 不能获得表单的数据,最后终于解决,留篇文章。
 
原因很简单: 注意更改from 属性啊!否则为null!
因为你用jspsmartuploadsmart时post请求 的格式是
multipart/form-data,即enctype="multipart/form-data",这和默认form提交是不同的
不同主要体现在:传送到服务器端的数据组织格式不同,就是说协议不一样(在3W官网上能找到相关格式说明文件)。 而现在的WEB容器对HttpServletRequest 方法getParameter(str)的实现都是按照默认协议。这也就难怪直接用request.getParameter()取到的值为null了。
解决方法是:
用smartupload里已经提供了专门的方法,

不能用普通的request.getParameter()
而要用upload.getRequest()就可以使用了
例子:
SmartUpload su = new SmartUpload();
 // 上传初始化
 su.initialize(pageContext);
 // 设定上传限制
 // 1.限制每个上传文件的最大长度。
 // su.setMaxFileSize(10000);
 // 2.限制总上传数据的长度。
 // su.setTotalMaxFileSize(20000);
 // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
 //su.setAllowedFilesList("xml");
 // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。
 // su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
 // 上传文件
  su.upload();
String softname=su.getRequest().getParameter("softname");
注意:一定要在su.upload();,之后取得!!

因为你用jspsmartuploadsmart时post请求 的格式是multipart/form-data,即enctype="multipart/form-data" ,这和默认form提交是不同的
不同主要体现在:传送到服务器端的数据组织格式不同,就是说协议不一样(在3W官网上能找到相关格式说明文件)。 而现在的WEB容器对HttpServletRequest 方法getParameter(str)的实现都是按照默认协议。
这也就难怪直接用request.getParameter()取到的值为null了。

解决方法是:

用smartupload里已经提供了专门的方法,
不能用普通的request.getParameter()
而要用upload.getRequest()就可以使用了

例子:

SmartUpload su new SmartUpload();
 // 上传初始化
 su.initialize(pageContext);
 // 设定上传限制
 // 1.限制每个上传文件的最大长度。
 // su.setMaxFileSize(10000);
 // 2.限制总上传数据的长度。
 // su.setTotalMaxFileSize(20000);
 // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。

 //su.setAllowedFilesList("xml");
 // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。
 // su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
 // 上传文件
  su.upload();

String softname=su.getRequest().getParameter("softname");

注意:一定要在su.upload();,之后取得!!
阅读全文
0 0
原创粉丝点击