我用了之后,在后台一直取不到files,这个是什么原因呢。
easyUpload({
easyId: 'easy1',
action: 'easyuploadHandler.ashx',
type: 'post',
accept: '.jpg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar,.mp3,.mp4,.wma,.avi,.txt',
maxSize: 20, //最大20M
maxCount: 1, //插件单次添加文件的最大数量,Number类型
multiple: false,
? //是否开启多文件上传,Boolean类型
name : 'file', //上传的文件字段名
dataFormat: 'formData',
setRequestHeader: function(xhr) {
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
//xhr.setRequestHeader('content-type', 'multipart/form-data');
},
beforeUpload: function(file, data, args) {
data.append('token', file.id); //上传方式为formData时
},
buildSendData: function(file) {
var formData = new FormData(); // 发送格式为formData时
console.log(file.file.name);
formData.append('name', file.file);
//formData.set('name', file.file);
formData.append('filename', file.file.name);
console.log(formData.get('name'));
//console.log(formData);
return formData;
// return file.base64; //发送格式为base64时
//return null; //发送空数据,用于测试
},
checkSuccessCode: function(xhr) {
console.log(xhr);
if (/error/.test(xhr.responseText.toLowerCase())) { //这里判断仅仅用于测试,具体看项目
return false;
} else {
return true;
}
}
});
回复
beforeUpload: function(file, data, args) {
data.append('token', file.id); //上传方式为formData时
},执行上传前的回调函数的时候如果file ,data 没有初始化且方法最开始执行会报错,每个人的引用方式不一样,因为我用到了file,直接把data 初始化 file初始化可以避免这种小错误。
有个问题,删除回调不管用,这问题可以在源码中修改,在源码中搜索'$(".btn--file")'和'$(".btn--item")'的两个事件,这俩分别是顶部多选的删除文件按钮,和每列中右上角的'X'按钮。然后在各自的事件中添加'that.configs.onRemove && that.configs.onRemove(delFiles);'即可。例如:
easyUploader.js 195行:
$(".btn--file").off("click").on("click", function() {
var hasLoading = false;
that.files.forEach(function(item) {
if (item.checked && item.uploadStatus == 'loading') {
hasLoading = true;
}
});
if (hasLoading) {
var message = '正在上传,请稍后操作';
if (that.configs.showAlert) {
alert(message);
}
that.configs.onAlert && that.configs.onAlert(message);
} else {
var newFiles = [];
var delFiles = [] //新建一个删除文件的数组,
that.ajax.isReady = false;
that.files.forEach(function(item) {
if (item.checked) { //判断当文件列表右侧多选为选中时,将该文件信息添加到删除数组中。
delFiles.push(item)
} else {
newFiles.push(item);
} //这里是源文件的方法,将没有选中删除的文件放在这里。
});
that.files = newFiles;
that.updateFilesDom();
that.ajax.isReady = true;
that.configs.onRemove && that.configs.onRemove(delFiles); //执行删除回调
}
});