我正在使用dropzone和PHP来上传和删除文件。当我加载上传页面时,我创建了一些带有以下参数的模拟文件:名称,大小,缩略图和ID。使用预先上传的数据设置此模拟。
所以当有人点击删除文件按钮时,我会调用删除图像的php方法。
我的问题是当用户上传文件并尝试删除它而不加载页面时。当它发生时,dropzone文件对象就不能改变。
我正在尝试:
var dropZone3 = new Dropzone("#file3",{
init: function() {
this.on('success', function (file) {
console.log(file);
file['test'] = 'test';
file.test = 'test';
console.log(file);
})
},
paramName: 'file3',
autoProcessQueue:true,
uploadMultiple: false,
parallelUploads: 1,
maxFiles: 3,
maxFilesize: 5,
addRemoveLinks: true
我的问题是第一个console.log和第二个成功函数init中的内容显示了同一个文件。
任何人都知道如何修复它?
提前谢谢。
答案 0 :(得分:5)
可以直接向file
对象添加属性(dropzone v4.3.0)
var dropZone = new Dropzone(document.querySelector('.js-dropzone'), {
url: '/file/upload'
});
dropZone.on('success', function (file, response) {
var res = JSON.parse(response);
if (res.result == true) {
file.test = 'test';
file.id = res.id;
}
});
答案 1 :(得分:1)
不要认为您可以在已经上传的文件对象中添加属性,但您可以在accept
属性之前添加它:
var dropZone3 = new Dropzone("#file3", {
url: "upload.php",
init: function () {
this.on('success', function (file) {
console.log(file);
})
},
accept: function(file, done) {
file.test = "test";
return done();
},
paramName: 'file3',
autoProcessQueue: true,
uploadMultiple: false,
parallelUploads: 1,
maxFiles: 3,
maxFilesize: 5,
addRemoveLinks: true
});