8
Dropzone.options.imageFile = {
    url: HOST_NAME + USER_NAME + BUILDER_API +'image/',
    method: 'POST',
    // enter code here
    acceptedFiles: '.jpg, .jpeg, .png',
    paramName: "imagefile", // The name that will be used to transfer the file
    maxFilesize: 10, // MB
    //addRemoveLinks: true,
    maxFiles: 2,
    init: function() {
        this.on("success", function(file, response) {
            image_id = response.id;
            IMAGES.push(image_id);
            check_files();
        }),
        this.on("removedfile", function(file, response){
            data = JSON.parse(file.xhr.response);
            alert(data['id']);
        });
    },
};

我必须做什么才能完全重置 dropzone?

4

3 回答 3

12

不是 100% 确定我理解了这个问题,但我认为您希望能够从原始状态重用 dropzone 实例。

从技术上讲,你想打电话removeAllFiles(),这将删除所有文件。

这是一个示例,向您展示如何添加一键删除所有文件: 一键删除所有文件

此外,还有其他人试图做与您正在寻找的相同的事情:Reset dropzone to Pristine state

于 2014-02-13T17:05:46.067 回答
7

这是该问题的答案,许多人在stackoverflow上都喜欢它...要在非编程方式创建的dropzone(http://www.dropzonejs.com/#configuration)上删除AllFiles,您将执行(使用OP的ID) :

 var myDropzone = Dropzone.forElement("#imageFile");
 myDropzone.removeAllFiles();

问题是,这并没有为我返回漂亮的“在此处上传图像”消息 - 只是留下了一个莫名其妙的白框 - 又一步来解决这个问题。

 $(".dz-message").removeClass("hidden");

这将显示原始消息。

于 2017-07-21T21:50:35.387 回答
0

我创建一个按钮并放置此代码。单击按钮时,它会被隐藏,并且您的放置区就像页面刷新一样。

$("#btn").click(function () {
    $('#btn').hide();
    $('.dropzone')[0].dropzone.files.forEach(function(file) {
        file.previewTemplate.remove();
    });

    $('.dropzone').removeClass('dz-started');
});

于 2018-09-04T13:39:44.997 回答