jspsmartupload上传文件

最近在做项目的时候用jspsmartupload上传文件,但是发现一个问题,用request.getParameter("name") 不能获得表单的数据,最后终于解决,留篇文章。

      原因很简单:

因为你用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();,之后取得!!

你可能感兴趣的:(jspsmartupload上传文件)