首页 > 技术文章 > JSP SMARTUPLOAD组件:上传文件时同时获取表单参数

jxgapyw 2015-12-08 21:56 原文

原因很简单: 注意更改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();,之后取得!!

推荐阅读