【问题标题】:Dropzone - Timings to upload ImagesDropzone - 上传图片的时间
【发布时间】:2022-02-23 01:22:01
【问题描述】:

我正在使用 Dropzone 在表单上上传图片。我正在重写“addFile”函数来执行一些自定义功能来在本地存储上传的图像。所以,我可以在表单提交时获取这些图像。我正在使用以下代码:

$dropzone.dropzone({
            url: "/file-upload",
            autoProcessQueue: false,
            uploadMultiple: true,
            parallelUploads: 6,
            maxFiles: 6,
            maxFilesize: 2.5,
            addRemoveLinks: true,

            init: function () {
                this.on("addedfile", function (file) {
                    $("#FileUploadErrorMessage").val("");
                    var uniqueId = document.getElementById("UniqueId").value;

                    setTimeout(function () { 
                        var model = {
                            FileName: uniqueId + "-" + file.name,
                            Base64Url: file.dataURL
                        };

                        var defaults = {};
                        var extendedModel = $.extend(defaults, model);

                        $.ajax({
                           // Send '**model**' variable to controller action to store file in 
                           // local directory
                        });
                    }, 3000);
                });
...

我不得不在我的 AJAX 函数周围添加 3 秒超时,因为在 dropzone 完成将文件添加到插件之前,'file' 变量(发送到函数)是未定义的.但是,我需要找到一种更好的方法来执行此操作,因此我不必设置 3 秒超时来等待“file”变量,因为在某些情况下,上传图像到插件并点击此函数超过 3 秒,并导致在点击 AJAX 函数时未定义“file”变量。

谁能帮忙?

【问题讨论】:

    标签: c# ajax model-view-controller dropzone.js


    【解决方案1】:

    这是因为在触发addedFile 事件时尚未设置file.dataURL 属性。请参阅此帖子 - DropzoneJS dataURL is undefined

    您正在设置超时,以便为 DropZone 提供足够的时间来填充该值。但缺点是事情可能需要比您设定的时间更长的时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-22
      • 2018-09-17
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多