为什么在form中加了enctype="multipart/form-data"后, 后台还是取不到上传的file文件?在线等高手解释

异常:org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException:thereques... 异常:org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded; charset=UTF-8 展开
 我来答
五巴烂
推荐于2016-09-19 · TA获得超过205个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:142万
展开全部
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到
text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
enctype="multipart/form-data是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form- data,才能完整的传递文件数据,进行下面的操作.

别人的一个例子:
form中加入enctype="multipart/form-data"时整个表单被封装,字符将转成二进制流,因此request.getParameter("user_type")是得不到值的.给段实例做参考:
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
su.upload();
String strzy=su.getRequest().getParameter("user_type");
这样就行了
更多追问追答
追问
额 我不是在后台收不到页面表单值  是页面上传的图片文件 后台接收不到。。
追答
或者你重新做下
风之国都尘风
2018-02-09 · TA获得超过105个赞
知道答主
回答量:77
采纳率:0%
帮助的人:24.1万
展开全部
你用的是 ajax 提交的吧, 设置成 enctype="multipart/form-data" 后用ajax提交会丢失表单中的信息,说白了提交的时候还是 键值对,即application/x-www-form-urlencoded; charset=UTF-8, 你用action 进行不同提交不会出现这种问题
用ajax 解决办法: 不要用表单序列,这样会丢失表单信息,用formData对象进行数据封装,作为ajax 中的data数据,传到后天。具体可以百度 formData 上传文件,教程多的是
原因跟思路以上,代码自己写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式