关于enctype=multipart/form-data和使用jspsmartupload组件中文参数乱码

本文探讨了在网页制作中涉及文件上传时所使用的MIME编码协议multipart/form-data,并对比了其与application/x-www-form-urlencoded的区别。此外还介绍了如何利用jspsmartupload包正确获取表单参数。
当在网页制作过程中如果涉及文件上传的,要使用enctype=multipart/form-data编码协议;
和application/x-www-form-urlencoded的区别如下:
/**********以下来自百度百科

---------------------------
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
  multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到
  text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
  enctype="multipart/form-data是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。

----------------------------
************/

使用该方式传递的一个结果是通过request对象的getParameter方法不再获得参数,为null值。
如果自己解析流来获取参数也是可以的,但比较麻烦,不适合新手。这里我们可以用jspsmartupload包的相应对象方法来获取相应值:

SmartUpload su = new SmartUpload();//新建一个SmartUpload对象

su.initialize(this.getServletConfig(), request, response);//servlet中的初始化
su.initialize(pageContext);//jsp中的初始化
su.upload();//将文件上传
Request suRque = su.getRequest();
String sex = suRque.getParameter(参数名);
就可以获取参数了。
不过官方给的jspsmartupload文件在获取中文文件名、中文参数时会乱码,解决办法可以自己修改里面的代码;具体可上网查查。
这里给出一个别人写好的;方便像我一样的新手们使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值