Почему параметры dropzone не загружаются? - PullRequest
0 голосов
/ 07 марта 2019

У меня есть дропзона, и я хотел бы установить некоторые параметры, чтобы файлы были .zip. Мне также нужно, чтобы эти файлы были больше и получать некоторую информацию, когда они возвращаются. Опции, кажется, не загружаются для меня, и quecomplete никогда не получает удар.

Edit.cshtml:

<div class="row">
  <div class="col-8">
    <form asp-action="UploadFiles" class="dropzone" id="versionFiles"> 
    </form>
  </div>
</div>


@section Scripts {
<script>
    $(document).ready(function () {
        Dropzone.options.versionFiles = {
            acceptedFiles: ".zip",
            maxFileSize: 2048,
            timeout: 600000,
            init: function () {
                this.on("queuecomplete", function (file, response) {
                    console.log(file);
                })
            }
        };

    })
</script>
}

Редактировать: Фиксированное время ожидания

1 Ответ

1 голос
/ 07 марта 2019

Избегайте настройки параметров для Dropzone внутри document.ready(function(){ /* ... */ }).

Чтобы устранить проблему, измените код, как показано ниже:

<strike>$(document).ready(function () { </strike>
    Dropzone.options.versionFiles = {
        acceptedFiles: ".zip",
        maxFileSize: 2048,
        timeout: 600000,
        init: function () {
            this.on("queuecomplete", function (file, response) {
                console.log("ssssssssssssss",file);
            })
        }
    };
<strike>}); </strike>

[Изменить]:

Причина в том, что Dropzone.js будетавтоматически обнаруживать все элементы формы с помощью класса dropzone и автоматически присоединяться к нему.Если вы настраиваете параметры с помощью document.ready(function(){/.../}), вы не можете гарантировать, что параметры установлены до того, как Dropzone вступит в силу.

Если вам нужно выполнить запуск после того, как документ будет готов, вы можете использовать программный способ, чтобы убедиться в последовательности:

Dropzone.autoDiscover = false;           // disable auto discover

$(document).ready(function () { 
    Dropzone.options.versionFiles = {
        acceptedFiles: ".zip",
        maxFileSize: 2048,
        timeout: 600000,
        init: function () {
            this.on("queuecomplete", function (file, response) {
                console.log("xyz...",file);
            })
        }
    };
    $("#versionFiles").dropzone({ });   // trigger it
});
...