当autoProcessQueue为false时,进度条不起作用

时间:2016-06-21 11:16:35

标签: dropzone.js

我使用Dropzone.js在我的网站上显示图片。

它工作得非常好,但有一个问题。

在我意识到Dropzone自动发送图像信息而没有用户按下提交按钮后,我将autoProcessQueue设置为false。

现在,它不会自动发送信息,但进度条会被破坏,如下图所示。

enter image description here

图像上似乎有一条白线,看起来并不好看。

3 个答案:

答案 0 :(得分:1)

我的进度条有类似的问题。我也在我的解决方案中使用了twitter-bootstrap和jQuery。带有进度条的这个解决方案适用于我(请参阅标识为total-progress的元素)。

这是我的模板:

<!-- Upload preview template begin -->
<div id="preview-template" style="display: none;">
    <div class="dz-preview dz-file-preview" style="display:inline-block;margin:10px;">
        <div class="dz-details">
            <div class="dz-filename label label-primary">
                <span data-dz-name></span>
            </div>
            <br style="line-height:2px;" />
            <div class="dz-error-message label label-danger" style="display:none;clear:both;">
                <span data-dz-errormessage></span>
            </div>
            <br style="line-height:2px;" />
            <!--<div class="dz-size" data-dz-size></div>-->
            <img data-dz-thumbnail style="border-radius:5px;clear:both;" />
        </div>
        <!--<div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>-->
        <!-- <div class="dz-success-mark"><span>?</span></div> -->
        <!-- <div class="dz-error-mark"><span>?</span></div> -->
        <div data-dz-remove class="btn btn-default removePicFromAlbum" title="Entfernen"><span class="glyphicon glyphicon-remove center-block" aria-hidden="true"></span></div>
        <div id="total-progress" class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" style="width:100px;">
            <div class="progress-bar progress-bar-success" style="width:0%;" data-dz-uploadprogress></div>
        </div>
        <!--<img src="removebutton.png" alt="Click me to remove the file." data-dz-remove />-->
    </div>
</div>
<!-- Upload preview template end -->

这是我的Javascript代码:

Dropzone.autoDiscover = false;
var {{$name or 'upload'}} = new Dropzone("div#{{$name or 'upload'}}", {
    url: "{{ action("$controllerClass@store") }}"
    , method: "post"
    , paramName: "file" // The name that will be used to transfer the file
    , maxFilesize: {{$maxFilesize or str_replace('M','',ini_get('upload_max_filesize')) }} // MB
    , uploadMultiple: false
    , dictDefaultMessage: "{{$text or 'Ziehen Sie Dateien in diesen Bereich, um diese hochzuladen'}}"
    , previewTemplate: document.getElementById('preview-template').innerHTML
    //, acceptedFiles:'image/*'
    , previewsContainer: '#logoPreview'
    , thumbnailWidth: {{$thumbnailWidth or 100}}
    , thumbnailHeight: {{$thumbnailHeight or 100}}
    , sending: function (file, xhr, formData) {
        formData.append('_token', '{!!csrf_token() !!}');
    }
    , success: function(file, responseText) {
        if(responseText != undefined) {
            if (responseText.success != undefined && responseText.success == "false") {
                $(file.previewElement).find('.dz-error-message').text("Fehler: " + responseText.errorMessage);
                $(file.previewElement).find('.dz-error-message').css('display','inline-block');
            }
            else {
                $(file.previewElement).find('.dz-error-message').css('display','none');
            }
        }
        $(file.previewElement).find('#total-progress').css('display','none');
    }
    , error: function(file, message, xhr) {
        var header = "Error " + xhr.status + ": " + xhr.statusText;
        $(file.previewElement).find('.dz-error-message').text(header);
        $(file.previewElement).find('.dz-error-message').css('display','inline-block');
        $(file.previewElement).find('#total-progress').css('display','none');
    }
    , uploadProgress: function(progress) {
        document.querySelector("#total-progress .progress-bar").style.width = progress + "%";
    }
    , completed: function(progress) {
        $(file.previewElement).find('#total-progress').css('display','none');
    }
    , removedfile: function(file) {
        removeFile(file.name);
        $(file.previewElement).remove();
    }

    });

答案 1 :(得分:0)

您将进度条绑定到错误的事件。将uploadProgress替换为uploadprogress

Doc就在这里:http://www.dropzonejs.com/#event-uploadprogress

答案 2 :(得分:0)

这篇文章可能很旧,但我得到了简单的答案。所以我在这里发帖是为了任何需要帮助的人。

移除 autoProcessQueue: false 并设置 url: "#"。当您设置 url: "#" 时,dropzone 无法自动处理但 autoProcessQueue: true(默认情况下)将有助于触发动画

这样,它对我有用

"pilets": {
    "externals": [
      "styled-components",
      "<internal ui framework>"
    ]
  }