form表单enctype="multipart/form-data"

6 篇文章 0 订阅
5 篇文章 0 订阅

form表单设置enctype="multipart/form-data"之后,上传文件,获取文件名、路径等都没有问题。

如果需要获取form中普通控件,比如type=“text”的值,使用request.getparameter(“xxx”)是无法成功的。

因为enctype将信息以二进制输入。

如何解决这个问题,网上很多,基本就一个意思,

SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
JspFactory fac = JspFactory.getDefaultFactory();
PageContext pageContext=fac.getPageContext(this,request,response,null,false,JspWriter.DEFAULT_BUFFER,true);
su.initialize(pageContext);
su.service(request, response);
su.upload();
pwd = su.getRequest().getParameter("name_getpwd");//取单个参数单个值
System.out.println(pwd);
不过貌似试过了,不行。为什么了?暂不清楚。

仔细看代码,发现了isFieldForm这个函数,

可以在这里做点文章,

while(iter.hasNext()){
					FileItem item = (FileItem)iter.next();
					if(!item.isFormField()){
						//表单名字
					    //String fieldName = item.getFieldName();
					    fileName = item.getName();
					    System.out.println(fileName);
					}else if (item.getFieldName().equals("name_getpwd"))
					{
						pwd = item.getString();
						System.out.println(pwd);
					}
。。。。。。

这里需要注意的是,以上代码先取文件名,后取空间值,是因为上传form的顺序是先file后text,必须得根据这个顺序来取值。

ok


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值