Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload 使用DropzoneJS并行上载多个图像_File Upload_Jquery Plugins_Dropzone.js - Fatal编程技术网

File upload 使用DropzoneJS并行上载多个图像

File upload 使用DropzoneJS并行上载多个图像,file-upload,jquery-plugins,dropzone.js,File Upload,Jquery Plugins,Dropzone.js,目前,我有一个DropzoneJS实现,用户可以选择多个图像并上传它们。有一个参数parallelUploads,实际上它似乎决定了一次可以上载多少图像,例如,如果用户选择10个文件,则打开“选择文件”对话框,但是parallelUploads:5,则只有前5个图像将成功上载,其余5个图像将被忽略,这5个图像通过一个HTTP POST请求发送 我想能够做的是对其进行配置,以便上传的图像数量不受限制,而是分批上传。例如,如果用户选择30个图像,我希望它们都能成功上传,每个HTTP POST请求有1

目前,我有一个DropzoneJS实现,用户可以选择多个图像并上传它们。有一个参数parallelUploads,实际上它似乎决定了一次可以上载多少图像,例如,如果用户选择10个文件,则打开“选择文件”对话框,但是parallelUploads:5,则只有前5个图像将成功上载,其余5个图像将被忽略,这5个图像通过一个HTTP POST请求发送

我想能够做的是对其进行配置,以便上传的图像数量不受限制,而是分批上传。例如,如果用户选择30个图像,我希望它们都能成功上传,每个HTTP POST请求有1个图像,或者每个HTTP POST有一个定义的数字,例如5。如果我设置parallelUploads:30,那么服务器需要大量内存来尝试一次性对30个图像进行服务器端处理,这似乎不是一个很好的解决方案

我如何配置它,以便在不限制用户在一次操作中上载的图像数量的情况下,为每个图像启动单独的HTTP POST请求,或者一次仅为定义数量的图像启动单独的HTTP POST请求

<link rel="stylesheet" type="text/css" href="dropzone.css" media="all" />
<script type="text/javascript" src="dropzone.min.js"></script>

<div id="pnlPhotoThumbnails"></div>
<div class="clearfix">
  <form id="frmUpload" method="post" enctype="multipart/form-data"
        action="photo-upload.json" class="dropzone">
    <input type="file" name="photo" id="photo" />
  </form>
</div>

<style type="text/css">
#frmUpload input[type=file]{display:block;height:0;width:0;}
</style>

<script type="text/javascript">
function RefreshPhotos(){ $('pnlPhotoThumbnails').load('photo-thumbnails.php'); }
$(function(){
  $('frmUpload').dropzone({
    acceptedFiles: '.jpg',
    parallelUploads: 5,
    init:function(){
      var hDropzone = this;
      this.on('success', function(){ RefreshPhotos(); hDropzone.removeAllFiles(); });
    }
  });
});
</script>

注意:上面是一个与我的实现类似的示例代码,尽管我对它进行了一些编辑,使问题变得一般而不是特定于我的项目,希望有足够的代码来说明它是如何工作的,所以请记住,仅从这一段代码来看,它是不完整和功能性的!photo-upload.json将是一个服务器端脚本,用于处理文件上载并返回json成功/错误响应,photo-thumbnails.php将返回带有每个照片缩略图标记的HTML。

以下配置将解决此问题,在这种特定情况下,它将允许在一个用户操作中上载多达100个文件,但每个图像上载都有一个单独的HTTP POST请求

从DropzoneJS版本4.0开始,如果我错误地将允许一次上载的文件数设置为无限,或者定义要一起批处理的图像数,则似乎无法纠正我的错误,因为它们要么一起上载,要么单独上载:

parallelUploads: 100,
uploadMultiple: false