dropzone,js upload后如何刷新页面?

时间:2013-09-12 13:05:54

标签: javascript jquery dropzone.js

我正在使用dropzone.js来拖放到我的文件上传。

我已将autoProcessQueues设置为false,并且我正在对添加到上传容器的所有文件运行processQueue命令。

有没有办法在处理完所有文件后刷新页面?我无法在processQueue函数中找到任何回调函数..

6 个答案:

答案 0 :(得分:17)

以下是一个完整的解决方案,其中包含其他贡献者解决方案,其中dropzoneJsForm是您的dropzone表单的id。此脚本在页面加载时运行,并使用这些选项初始化dropzone。 (我没有禁用自动发现)。

// Initialise DropZone form control
// dropzoneJsForm = the id of your dropzone form
Dropzone.options.dropzoneJsForm = {
    maxFilesize: 10, // Mb
    init: function () {
        // Set up any event handlers
        this.on('completemultiple', function () {
            location.reload();
        });
    }
};

编辑:现在有completemultiple个事件,因此您无需检查队列长度。

答案 1 :(得分:6)

以下是您需要做的事情。

初始化您的插件。

Dropzone.autoDiscover = false;

此行用于关闭dropzone的自动发现。

    var md = new Dropzone(".mydropzone", {
        url: "/user/upload/", # your post url
        maxFilesize: "5", #max file size for upload, 5MB
        addRemoveLinks: true # Add file remove button.
    });

Bind Complete方法

    md.on("complete", function (file) {
        if (this.getUploadingFiles().length === 0 && this.getQueuedFiles().length === 0) {
            alert('Your action, Refresh your page here. ');
        }

        md.removeFile(file); # remove file from the zone.
    });

我希望这会有所帮助。

答案 2 :(得分:5)

如果已上传所有文件,则无需手动检查。 Dropzone提供了一个默认函数,一旦在队列中处理完所有文件,它就会触发。使用queuecomplete对您有利。

使用它:

this.on("queuecomplete", function (file) {
      location.reload();
  });

答案 3 :(得分:0)

尝试处理事件'完成'。

$dropzone.on('complete', function () {
    location.reload();
});

Dropzone.js Wiki

答案 4 :(得分:0)

我会使用completeMultiple处理程序,但您必须以file[]files[]的数组正确处理上传。如果你真的不想处理它,那么设置maxFiles: 1或检查队列以确保没有其他内容正在上传,以便页面刷新取消任何待处理的事情。您可以使用以下方法检查队列:

if (myDropzone.getQueuedFiles().length == 0 && myDropzone.getUploadingFiles().length == 0)

答案 5 :(得分:0)

我知道这是一个老问题,但是我想分享对我有用的东西。

Dropzone.options.myDropzone = {
    paramName: 'file',
    maxFilesize: 5, // MB
    maxFiles: 18,
    acceptedFiles: "image/*",
    init: function () {
    this.on("queuecomplete", function (file) {
    $( "#leo" ).load(window.location.href + " #leo" );});}},

在这里,我重新加载div而不是重新加载整个页面..如果您想重新加载整个页面,请使用location.reload();