Enctype是什么?
enctype这个属性管理的是表单的MIME编码。共有三个值可选:
- application/x-www-form-urlencoded
- multipart/form-data
- text/plain
其中application/x-www-form-urlencoded是默认值,作用是设置表单传输的编码,而multipart/form-data是用来制定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或是是mp3等等。text/plain是纯文本传输的意思,在发邮件的时候要设置这种编码类型,否则会出现接收时编码混乱的问题。
form设置了enctype="multipart/form-data" 属性后,就是2进制传输数据了。
解决当FORM的ENCTYPE=multipartform-data 时取不到值
在开发一个MIS系统中,部分页面中有需要上传文件的字段,相信大家在开发中也经常遇到这样的情况.因为要上传文件,所以FORM标记中的ENCTYPE="multipart/form-data",可是这样的话,当你在servlet里面用request.getParameter()方法无论如何都只是获得null值,解决方法如下:
用jspsmartupload组件实现文件上传的,这个方法是我使用的方法,所以把主要代码贴了出来
SmartUpload upload = new SmartUpload();
try{
upload.initialize(config, request, response);
// 允许上传的文件类型
upload.setAllowedFilesList(\"doc,xls,\");
// 拒绝上传的文件类型
upload.setDeniedFilesList(\"exe,bat,jsp\");
// 允许上传文件的单个最大大小
upload.setMaxFileSize(1024 * 1024 * 20);
// 允许上传文件的最大大小总和
// upload.setTotalMaxFileSize(1024*1024*10);
//上传数据
upload.upload();
}
catch (SmartUploadException e){
e.printStackTrace();
return;
}
Request req = upload.getRequest();
String spid=(String)req.getParameter(\"teacherId\");
//.....
//To do something
这样就可以取得对应的值了.
form enctype="multipart/form-data"中文乱码
在web开发时,我们可能会为其添加上传图片的功能,在form表单上传图片的同时,我们也会在其中添加一些信息,比如id,图片简介什么的,当使用到了中文时,也许会产生乱码问题。问题的原因可以归结为以下几点
servlet 中是否有request.setCharacterEncoding("UTF-8");没有就需要加上。
项目的编码格式是否是“GBK”,如果不是的话,也需要将其修改为“GBK
修改了以上的小问题的话,大问题就基本解决了
继续阅读与本文标签相同的文章
-
性能优化之卡顿延迟
2026-05-14栏目: 教程
-
第16问:Filecoin从DSN角度解读
2026-05-14栏目: 教程
-
C/C+从零基础到精通,究竟是如何快速完成的?其实只需要这6步!
2026-05-14栏目: 教程
-
谷歌再爆重大安全漏洞!华为却成最大赢家?网友:这谁还敢用!
2026-05-14栏目: 教程
-
Excel崩溃文件如何找回
2026-05-14栏目: 教程
