2 qq 33159419 qq_33159419 于 2016.01.26 09:22 提问

文件上传的问题 enctype已经设置

表单是这样的图片说明
是直接通过点击事件跳转至action的(这是公司固定的写法),但是我在action接收的时候别的表单数据都能得到,一到文件上传这里就立马报错,错误代码是:
the request doesn't contain a multipart/form-data or multipart/form-data stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
用的是struts2
请大神支招!谢谢

3个回答

made_differ
made_differ   2016.01.26 09:59

请贴出你上传文件那个input

qq_33159419
qq_33159419 麻烦帮我看下,谢谢
2 年多之前 回复
qq_33159419
qq_33159419 <input name="advertisement.picPath" class="text" cmps="@{picPath}" type="file" maxlength="50"/>
2 年多之前 回复
qq_33159419
qq_33159419 <input name="advertisement.picPath" class="text" cmps="@{picPath}" type="file" maxlength="50"/>
2 年多之前 回复
qq_33159419
qq_33159419 <input name="advertisement.picPath" class="text" cmps="@{picPath}" type="file" maxlength="50"/>
2 年多之前 回复
made_differ
made_differ   2016.01.26 10:22

看代码没问题,你看看细节上

made_differ
made_differ 回复小李肥肥: 解决了么?按钮和提交那块让我看看
2 年多之前 回复
qq_33159419
qq_33159419 是在表单里面的,表单提交是通过一个普通按钮的点击事件来触发然后封装成json传到后台action的
2 年多之前 回复
made_differ
made_differ 回复小李肥肥: 知道你的问题了。请描述下你是怎么提交form的?
2 年多之前 回复
made_differ
made_differ 回复小李肥肥: <input name="advertisement.picPath" class="text" cmps="@{picPath}" type="file" maxlength="50"/> 你这句在不在form里边呀
2 年多之前 回复
made_differ
made_differ 回复小李肥肥: 好,我看看
2 年多之前 回复
qq_33159419
qq_33159419 我现在知道问题出在哪了,但不知道怎么解决?就是我表单enctype属性设置了是无效的,它提交的仍然是默认的,Content-Type:application/x-www-form-urlencoded; charset=UTF-8;
2 年多之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.01.26 13:29

可能是浏览器的兼容问题

qq_33159419
qq_33159419 我用的是谷歌,跟我的点击事件获取表单id然后封装成json传到action没有关系的吧
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
文件上传form enctype属性设置
<s:form action="admin/foods-save" enctype="multipart/form-data">
上传文件动态设置enctype
以下是最常见上传文件片段 upload 复制代码 有点js知识得人可能试图用js检查并控制enctype得类型 form=document.getElementById('upform'); if(form.getAttribute('enctype')!='multipart/for
为什么上传文件的表单里要加个属性 enctype
上传文件的表单中要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么 写,知其然而不知其所以然。那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢? 其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x- www-form-urlencode
上传文件是 form表单需要设置一个属性值enctype
<br />我们在利用struts框架开发项项目时,会通过表单来提交数据。数据包括直接从文本框接收用户的输入,也有通过导入文件的方式,以及导入本地图片等。<br />    直接从文本框输入的话,可以提交至服务器。在提交文本文件数据时,会出现argument type mismatch异常。详细异常如下:<br />java.lang.IllegalArgumentException: argument type mismatch<br /> at sun.reflect.NativeMethodAcces
为什么上传文件的表单需要设置enctype="multipart/form-data"
在学习PHP文件上传的过程中发现,HTML表单需要设置enctype="multipart/form-data"这个属性,虽然不这么设置的确无法上传,但这是为什么呢?
javascript构造可以上传文件的form表单(通过js修改enctype)
From:http://kiddymeet.blog.51cto.com/20194/29166 在上传文件时,我们都知道需要在form表单中加上enctype="multipart/form-data"。而在开发过程中,也有可能遇到需要用javascripts构造form表单的情况。一般javascript构造form,可以使用以下方法:var form = document.c
表单中存在上传文件时设置enctype="multipart/form-data"的问题
(1)在用Struts上传文件时,遇到了javax.servlet.ServletException: BeanUtils.populate异常。 我的ActionServlet并没有用到BeanUtils这些工具类。感觉很奇怪。后来仔细检查代码发现是在jsp文件里的form忘了加enctype="multipart/form-data" 了。 加上之后,果然没有异常了。 所以写程序遇到错误
springmvc文件上传与表单为enctype="multipart/form-data" 的数据绑定
最近刚开始接触SpringMVC,项目中copy了个先前项目的一个页面,测试过程中发现表单页面数据无法绑定到Model中传入值全部为NULL,后来发现使用的页面中表单form 使用了 enctype="multipart/form-data",取消掉enctype="multipart/form-data" 一切正常了。 后来项目需要此业务实现上传附件,这与之前矛盾,后来找到对应方法,恢复
Ajax 提交 form ENCTYPE="multipart/form-data" 的方法
转载: 通过Ajax方式上传文件,使用FormData进行Ajax请求  (http://yunzhu.iteye.com/blog/2177923 ) 该方法通过  formData的方式进行处理,比较方便易懂!!
SpringMVC中文件上传,添加enctype="multipart/form-data"后表单其他属性为空
最近在做一个小型项目,用SpringMVC+Spring+Mybatis做的,开始没有做图片上传,也没有用Spring MVC做过,以前是用Struts2搞定的,所以很自然的, 在设置form表单上的属性就用了enctype=”multipart/form-data”, 然后提交表单的时候说sql语句写得有问题,结果检查有没问题,然后我就想是不是表单提交的数据有问题,我就debug看了一下,表单提