1、引入jQuery;
2、js:
/**
* 上传文件
* @param {string} id -- 上传按钮id -- <input type="file">的id
* @param {string} upadLoadPath -- 图片上传存储路径
* @param {string} UpadloadPathUrl -- 图片上传接口
* @param {funtion} fun -- 回调函数
*
* @author 沈英逊
* @email 3204836547@qq.com
*
*/
function upLoadFile(id,upadLoadPath,UpadloadPathUrl,fun) {
var thisUp = this;
var fileId = "#" + id;
var fd = new FormData();
for(var i = 0; i < $(fileId)[0].files.length; i++) {
fd.append("file" + (i + 1), $(fileId)[0].files[i]);
}
fd.append("UpadloadPath", upadLoadPath);
$.ajax({
url: UpadloadPathUrl,
type: "POST",
processData: false,
contentType: false,
data: fd,
beforeSend: function() {
console.log('正在上传,请稍后');
},
error: function(callBackData) {
alert('上传失败,请检查网络');
},
success: function(callBackData) {
/*上传成功回调,并判断返回数据长度*/
if(callBackData.data.length != 0) {
fun(callBackData);
}
}
});
}
3、调用方法
/*使用
* @param {string} fileId -- file按钮id
* @param {string} imgId -- 图片id
*
*/
function loadImg(fileId,imgId){
var upBtn = "#"+fileId;
/*图片上传存储路径*/
var upadLoadPath = '';
/*图片上传接口*/
var UpadloadPathUrl = '';
/*上传按钮触发*/
$(upBtn).click();
$(upBtn).change(function() {
/*上传*/
upLoadFile(fileId,upadLoadPath,UpadloadPathUrl,function(callBackData) {
});
})
}
//注意:调用时需点击其他地方去出发上传文件按钮,若直接点击上传按钮去上传,可能会出现第一次点击上传一个文件,第二次点击上传两次相同文件,依次类推下去