Javascript 如何在上传之前从fineuploader中删除一些文件

Javascript 如何在上传之前从fineuploader中删除一些文件,javascript,fine-uploader,Javascript,Fine Uploader,我使用的是带有多个文件上传的Fine Uploader,效果非常好。现在,我在submit事件中运行了一些MD5检查,因此我可以确定文件是否已上载,但在手动触发上载之前,我不知道如何从上载查询或storedFiles中删除此文件。 这是我的代码: <script type="text/javascript"> $("#uploader").fineUploader({ request: { endpoint: 'home/upload'

我使用的是带有多个文件上传的Fine Uploader,效果非常好。现在,我在submit事件中运行了一些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>

$(“#上传器”).fineUploader({
请求:{
端点:“主页/上载”
},
多重:对,
自动上载:false,
编辑文件名:{
启用:true
}
}).on({
“完成”:函数(事件、id、文件名、响应){
if(responseJSON.success){
警报(“上传成功”);
}
},
“提交”:函数(事件、id、文件名){
var f=$(this.fineUploader('getFile',id);
var xxxx=检查MD5(f,id);
如果(xxxx==false){//如果checkMD5返回false,我希望忽略该文件
$(this.fineUploader.cancle(id)//这不起作用
}
},
“错误”:函数(事件、id、文件名、原因){
//警惕(原因);
}
});
$(“#上载按钮”)。单击(函数(){
$('#uploader').fineUploader('uploadStoredFiles');
});
函数CheckMD5(f,id){//我正在使用spark-md5.js get获取md5值并在服务器端进行比较
return false;//这是用于测试的
}
要删除文件(在开始或完成上载之前),只需通过取消即可

例如:

callbacks: {
    onSubmit: function(id) {
        if (fileIsInvalid) {
            this.cancel(id);
        }
    }
}

在我看来,一个更好的方法是在一个测试环境中测试文件,然后简单地返回false(或者在异步验证操作完成时返回一个承诺并拒绝/解决它)以忽略该文件

我的回答详细说明了两种处理方法,请看一看。谢谢,onValidate回调成功了!