关于使用ajax上传图片问题
2021-07-14 17:05
标签:dom controls web required gets pac net patch detail 今天需要做一个上传图片的功能,由于框架里面没有带,上网搜了下。看到有spring mvc的图片上传,而且有例子,刚好是自己需要的,直接粘贴复制下。参考: http://blog.csdn.net/luckey_zh/article/details/46867957# 很简单,使用了commons-upload和commons-io包,配置文件位置后,页面form表单这几设置,然后就好了。 配置完后,自己运行却发现,上传报错了: 上网搜了下,原来是因为自己使用的是ajax提交的,但是ajax默认的content-type是x-www-form-urlencoded,这样提交文件是无法生效的。由于框架的原因,如果改成form提交和其他页面相差太大,而且不一定能解决问题,于是决定继续顺着ajax为何不能提交这个坑继续下去。 然后上网继续搜,发现需要设置ajax的几个属性为false,这样才能提交:(参考http://www.jianshu.com/p/46e6e03a0d53) 刚开始用 data: $(form).serialize(), 结果不行,换成了下面的这种,然而又有问题了。页面的元素通过request.getParameter("")居然获取不到了。。。 设置提交方式为enctype="multipart/form-data"后,使用request.getParameter(“”)是获取不到页面的formData的数据的。 上面也说了解决办法,就是使用common-smartupload进行获取,我就是 通过这种方式获取的,不过碰到了几个问题,比如乱码问题、windows/linux 分隔符问题以及文件找不到等小问题,最后总算解决了。另外附上一篇一个大神之前写的一篇文章。 http://www.cnblogs.com/xdp-gacl/p/4200090.html 前端:org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl.
$.ajax({
url: "ur",
contentType: false, //必须设置
processData: false, //必须设置
cache: false, //设置为false
// data: $(form).serialize(),
data: new FormData($(‘#myForm‘)[0]),
type: "POST",
继续搜,为何搜不到。。。然后在一篇文章上面看到了下面的说法:(参考:http://www.chongchonggou.com/g_464425214.html)
附上自己的代码以及实现: