ajaxFileupload这个插件用于上传文件,不过它默认是只能上传一个文件。通过修改其源代码,可以方便地实现多个文件上传。
ajaxFileupload的原理挺简单的,它将用户指定(通过ID)的file input添加到form里面,然后将form提交。我们只需要将多个file input的ID通过一个列表传给ajaxFileupload,让它将多个file input添加到form里面就可以了。
打开ajaxfileupload.js,修改如下的地方:
// 实现多文件上传
if (typeof(fileElementId) == 'string') {
fileElementId = [fileElementId];
}
for (var i in fileElementId) {
var oldElement = jQuery('#' fileElementId[i]);
var newElement = jQuery(oldElement).clone();
jQuery(oldElement).attr('id', fileId);
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);
}
// 下面是原来的代码
使用的时候:
$.ajaxFileUpload({
url: "/xxx/xxx/xxx",
secureuri: false,
fileElementId: [file1,file2,file3,...],// 这个地方变成数组了
dataType: 'json',
data:{
name: 'files'
},
success: function(data, status){
},
error: function(XMLHttpRequest)
{
})
有问题请留言。