javascript - 如何通过 Dropzone.js 使用按钮上传 2 个以上文件

标签 javascript php jquery dropzone.js

我制作了一个简单的表单来上传文件。通过表单,我可以将多个文件添加到队列中。使用特殊按钮,我可以从队列中删除文件。但由于某种原因,它不能以我想要的方式工作。通过单击“卸载文件”,只有 2 个文件上传到服务器。如果我第二次点击,第二个文件就会上传。所有代码如下。如何通过单击按钮上传所有文件?提前致谢。

HTML:

<div class="panel panel-default">
   <div class="panel-heading">
      <strong>Прикрепить файлы</strong>
   </div>
   <div class="panel-body">
      <button type="button" class="btn btn-primary" id="add-file">
         <span class="glyphicon glyphicon-folder-close" aria-hidden="true"></span> Обзор...
      </button>
      <button type="button" class="btn btn-primary" id="upload-file">
         <span class="glyphicon glyphicon-folder-close" aria-hidden="true"></span> Загрузить
      </button>
      <ul class="list-group dropzone-previews" style="margin-top: 10px; margin-bottom: 0;"></ul>
   </div>
</div>

JS:

$(".panel").dropzone({
        url: "upload.php",
        autoProcessQueue: false,
        init: function() {
        var myDropzone = this;
            $('#upload-file').click(function() {
                myDropzone.processQueue();
            });
        },
        clickable: '#add-file',
        acceptedFiles: 'image/*,application/pdf,application/msword',
        previewsContainer: '.dropzone-previews',
        previewTemplate: '<li class="working list-group-item">' +
            '<span data-dz-name></span> <span data-dz-size></span> (<u data-dz-remove>Удалить</u>)' +
            '<div class="progress" style="margin-top: 10px; margin-bottom: 0;">' +
            '<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" data-dz-uploadprogress></div>' +
            '</div></li>'
    });

以及我的 PHP 服务器脚本:

<?php
$ds = DIRECTORY_SEPARATOR;
$storeFolder = 'uploads';
if (!empty($_FILES)) {
   $tempFile = $_FILES['file']['tmp_name'];
   $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;
   $targetFile =  $targetPath. $_FILES['file']['name'];
   move_uploaded_file($tempFile,$targetFile);
}
?>

最佳答案

只需将parallelUploads的值增加到10或20即可。默认情况下,它会一次发送两个文件到服务器,因此您需要增加parallelUploads的值,它就会起作用。

 $(".panel").dropzone({
            url: "upload.php",
            autoProcessQueue: false,
            init: function () {
                var myDropzone = this;

            },
            parallelUploads: 20,
            clickable: '#add-file',
            acceptedFiles: 'image/*,application/pdf,application/msword',
            previewsContainer: '.dropzone-previews',
            previewTemplate: '<li class="working list-group-item">' +
                    '<span data-dz-name></span> <span data-dz-size></span> (<u data-dz-remove>Удалить</u>)' +
                    '<div class="progress" style="margin-top: 10px; margin-bottom: 0;">' +
                    '<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" data-dz-uploadprogress></div>' +
                    '</div></li>'
        });
        $('#upload-file').click(function () {
            myDropzone.processQueue();
        });

关于javascript - 如何通过 Dropzone.js 使用按钮上传 2 个以上文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39114759/

相关文章:

javascript - 如何在 DOM 树显示在屏幕上之前对其进行操作? (javascript, jquery, ...)

javascript - 如何仅在使用 Angular 2 激活 HTML 元素时启用验证?

php - 如何关闭未关闭的mysql连接?

javascript - Angular js 验证函数在验证的 api 调用完成之前返回

javascript - 如何在图像完全加载之前显示等待 gif

javascript - 没有 CSS 的 tinyMCE 构建

javascript - React Search Box 在添加文本时工作良好但在向后方向不工作(当通过退格键删除一些文本时)-ReactJS/Javascript

php - 如何在项目中设置本地时间,而不考虑服务器位置

javascript - 将 PHP 变量添加到 JQuery Post 传递的参数

jquery - 下拉菜单正在关闭,单击下拉区域的任意位置