Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30392226
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2008-04-08 10:20:18

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

阅读(3319) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

qbq2009-06-04 16:31:31

写个过滤器

chinaunix网友2009-06-01 16:45:52

如果要将获得的表单保存到数据库,会出现乱码问题,该如何解决啊?? 在一般的表单提交中,用request对象接收参数却不存在这种问题... 请麻烦解决一下...

chinaunix网友2009-03-20 09:20:24

牛皮,你自己测试过String softname=su.getRequest().getParameter("softname");这个方法能获取到值了吗,,不要想当然,,,,