今天做图片上传的碰到这个问题,查找原因是html请求的方式问题。from中涉及到图片上传的就要用post提交方式。否则就会报这个错误。如果已经是post的提交方式了还有这个错。。。还有两种解决方法。
第一种:在jsp页面的<head></head>标签里面加上<meta http-equiv="Content-Type" content="multipart/form-data; charset=utf-8" />
原因请看http://www.tuicool.com/articles/FrY7Fv
第二种:在from表单的属性设置里面加上enctype="multipart/form-data"
原因请看http://zkliqiang.iteye.com/blog/779285
我的不是不是上面的任何一种,原因是前台页面的工作人员在设计页面的时候使用了百度的ueditor插件,一个功能全面的文本编辑框的插件。虽然很好用,但是他在ueditor.all.js和ueditor.all.min.js里面把post请求的Content-Type:multipart/form-data二进制传送方式变成了Content-Type:text/html。
第三种:springmvc的配置中没有媒体解析器
<!-- 配置多媒体解析器 -->
<!-- 定义文件上传解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设定默认编码 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 设定文件上传的最大值5MB,5*1024*1024 -->
<property name="maxUploadSize" value="5242880"></property>
</bean>
第四种:没有添加对应jar包(依赖包)
<!-- 上传文件 -->
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
在这里结合网上查询到的坐下总结,算是做个纪念吧。
1.用ajax提交的时候如果没有在页面设置<meta http-equiv="Content-Type" content="multipart/form-data; charset=utf-8" />这个也会报这个错误。
2.用from提交的话,只要没有类似于ueditor这样修改提交的数据传送格式的插件。并且把提交方式设置成了post,一般就不会再出现这个错了。
3.如果上面的情况都排除了,那么查看你的插件吧!
参考:https://blog.csdn.net/u010974598/article/details/46458039