如何删除dropzone中的文件?

时间:2016-10-04 12:13:52

标签: angularjs dropzone.js

      init: function() {
            dzClosure = this;

            document.getElementById("place-order").addEventListener("click", function(e) {
                e.preventDefault();
                e.stopPropagation();
                dzClosure.processQueue();
            });

            this.on("sendingmultiple", function(data, xhr, formData) {
                formData.append("key", $scope.formData.order_id);
            });

            this.on('success', function(file, resp) {
                console.log(resp); //result - {error:false, file_id:10}
                file_ids.push(resp.file_id);
            });
        },
        removedfile: function(file) {
            console.log(file_ids);
            x = confirm('Do you want to delete?');
            if (!x) return false;
            var name = file.name;
            $.ajax({
                type: 'POST',
                url: 'orders/fileDelete.php',
                data: {"file_id": file_ids},
                dataType: 'json'
            });
            var _ref;
            return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0;
        }

高于我的代码工作正常。但我想在dropzone中单击“删除”按钮时删除我的mysql行。我无法在file_id函数中获取当前removedfile。请帮助我,让我知道如何在resp.file_id函数中获得removedfile

2 个答案:

答案 0 :(得分:1)

您可以在成功事件中将id属性设置为file,然后在删除时将其设置为file.id.希望这会对你有所帮助。

init: function() {
        dzClosure = this;

        document.getElementById("place-order").addEventListener("click", function(e) {
            e.preventDefault();
            e.stopPropagation();
            dzClosure.processQueue();
        });

        this.on("sendingmultiple", function(data, xhr, formData) {
            formData.append("key", $scope.formData.order_id);
        });

        this.on('success', function(file, resp) {
            file.id = resp.file_id;
        });
    },
    removedfile: function(file) {
        x = confirm('Do you want to delete?');
        if (!x) return false;
        //send delete to backend only if file was uploaded.
        //Dropzone will cancel requests in progress itself.
        if(file.id) {
            $.ajax({
            type: 'POST',
            url: 'orders/fileDelete.php',
            data: {"file_id": file.id},
            dataType: 'json'
        });
        }
    }

答案 1 :(得分:0)

经过大量研究后,我发现我的代码中出现了错误。

其实我的ajax回应了JSON。但这里是dropzone.js没有得到json数据。所以我将动态字符串数据转换为JSON格式。

代码:

this.on('success', function(file, resp) {
    console.log(resp); // result - {error:false, file_id:10}
    var response = JSON.parse(resp);
    file.file_id = response.file_id;
});