项目以前是按照微信开发的,前端input上传图片功能用的是微信JS,在手机浏览器中无法正常上传图片,所以准备改用ajaxfileupload。在网上查找资料,大部分的ajaxfileupload原文件都不一样,质量参差不齐,有各种各样的错误,向大家推荐一个修改过没有错误的版本,供大家下载ajaxfileupload.js
以下是我在使用过程遇到的一些问题,供大家参考:
一、后台接收不到数据:
- input标签中没有name属性
- 只能传递图片数据,不能传递data,这是原文件中ajaxFileUpload方法中没有data,换成上面的版本就可以了
- 如果type是json格式,data中向后台传递数据也要是json格式
二、不管返回正确或者错误,一直进入error回调函数
- 如果type是json格式,后台返回数据也要是json格式,保持一致
- 在ajaxfileupload原文件中找到uploadHttpData方法,在json方式中按照以下修改
if ( type == "json" )
{
//处理会加pre标签
if(data.indexOf('<pre>') != -1) {
data = data.substring(5, data.length-6);
}
//处理会加audio标签
if(data.indexOf('<audio') != -1) {
data = data.substring(0, data.indexOf('<audio'));
}
//改变原来的转换json逻辑
data = jQuery.parseJSON(data);
}
三、input标签只能选择一次
- 在createUploadForm方法中,按照以下修改
var oldElement = $('#' + fileElementId);
var newElement = $(oldElement).clone(true);