我在基本模式下使用5.3.2,因为我需要控制UI。
我添加了代码以允许上传,然后创建了一些可以触发删除的UI元素。我在删除时需要知道文件名。所以我使用了setDeleteFileParams,但没有附加任何请求。
var uploader = new qq.FineUploaderBasic({
button: document.getElementById('btnUploadFiles'),
debug: true,
autoUpload: true,
request: {
paramsInBody: true,
endpoint: '../myendpoint.htm',
params: {
tempID: 'myidwhatever'
}
},
deleteFile: {
enabled: true,
forceConfirm: false,
method: 'POST',
endpoint: '../myendpoint.htm'
},
callbacks: {
onSubmitted: function(id, name){
//do work
},
onDelete: function(id) {
this.setDeleteFileParams({filename: this.getName(id)}, id);
},
onDeleteComplete: function(UID, xhr, isError){
//remove my UI element
},
onComplete: function(UID, name, responseJSON, xhr) {
//create an element and stick it in
}
}
})
//ADD THE DELETE BUTTON ACTIONS
$('uploadedFiles').addEvent("click:relay(.deleteMyFile)", function(event, element) {
event.preventDefault();
arr = element.id.split('_')
uploader.deleteFile(arr[1]);
});
我使用Mootools作为我的JS框架。一切都触发正常,当我删除文件时控制台正确地记录文件名但是当我查看请求时没有'filename'参数。
感谢您的帮助。
答案 0 :(得分:2)
当您调用onDeleteFile
回调时,该文件已设置为已删除。如果您想影响(或阻止)潜在请求,则需要将您的逻辑置于onSubmitDelete
callback handler instead内。
例如:
callbacks: {
onSubmitDelete: function(id) {
console.log(this.getName(id));
this.setDeleteFileParams({filename: this.getName(id)}, id);
}
}