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

时间:2014-05-20 17:20:21

标签: javascript fine-uploader

我使用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>

1 个答案:

答案 0 :(得分:3)

要删除文件(在启动或完成上传之前),只需通过cancel API method取消即可。

例如:

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

在我看来,更好的方法是在onValidate callback中测试文件,只需返回false(或者在完成异步验证操作时返回一个promise并拒绝/解析它)以省略文件。