直接上代码:
/*
*jquery.ajaxUpload.js
*/
jQuery.extend({
ajaxFileUpload: function(s) {
s = jQuery.extend({}, jQuery.ajaxSettings, s);
s.type = "POST";
var f = new FormData();
for (var k in s.data) {
f.append(k, s.data[k]);
}
if (s.fileElementId) {
if (!jQuery("#" + s.fileElementId).attr("multiple")) {
f.append(s.fileElementId, jQuery("#" + s.fileElementId).get(0).files[0]);
} else {
var fs = jQuery("#" + s.fileElementId).get(0).files;
for (var i = 0; i < fs.length; i++) {
f.append(s.fileElementId + "[]", fs[i]);
}
}
}
s.processData = s.contentType = false;
s.data = f;
jQuery.ajax(s);
}
});
使用说明:脚本原理是在使用$.ajax前对数据进行处理使用方法跟$.ajax一样.就是多了fileElementId 属性用来标识input type="file" 节点的id。