我使用Fine Uploader进行多个文件上传,效果很好。现在我在提交事件中运行了一些MD5检查,因此我可以确定文件是否已上传,但我不知道如何在手动触发上传之前从上传查询或storedFiles
中删除此文件。
这是我的代码:
<script type="text/javascript">
$("#uploader").fineUploader({
request: {
endpoint: 'home/upload'
},
multiple: true,
autoUpload: false,
editFilename: {
enable: true
}
}).on({
"complete": function (event, id, fileName, responseJSON) {
if (responseJSON.success) {
alert("upload success");
}
},
"submit": function (event,id, fileName) {
var f=$(this).fineUploader('getFile',id);
var xxxx = CheckMD5(f, id);
if (xxxx==false) { //i want ignore the file if checkMD5 return false
$(this).fineUploader.cancle(id) //this is not working
}
},
"error": function (event, id, fileName, reason) {
//alert(reason);
}
});
$("#uploadButton").click(function () {
$('#uploader').fineUploader('uploadStoredFiles');
});
function CheckMD5(f,id) { //i'm using spark-md5.js get to get md5 value and compare in server side
return false; //this is for test
}
</script>
答案 0 :(得分:3)
要删除文件(在启动或完成上传之前),只需通过cancel
API method取消即可。
例如:
callbacks: {
onSubmit: function(id) {
if (fileIsInvalid) {
this.cancel(id);
}
}
}
在我看来,更好的方法是在onValidate
callback中测试文件,只需返回false(或者在完成异步验证操作时返回一个promise并拒绝/解析它)以省略文件。