如何使用dropzone.js上传多个文件?

时间:2019-05-14 11:33:06

标签: php drag-and-drop dropzone.js dropzone

我的问题是,当我拖放多个文件时,每个图像称为微粒ajax。我希望多个文件上传时间只有一个ajax调用。

我要选择一个文件,然后将其拖放到dropzone中,然后将其拖放到另一个文件中,这样就不能将文件替换为第一个文件了。我需要两个主题,然后单击一次保存在文件夹中的按钮,以进行一次ajax调用。

这是我的代码

HTML文件

<link href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.0.1/min/dropzone.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.2.0/min/dropzone.min.js"></script>

<div class="row">
    <form action="route.php?actionPresubmission=loanPreSubmission" class="form-horizontal dropzone" id="imageform">
    </form>
</div>

route.php

$uploadDir = 'upload';
   if (!empty($_FILES)) {
    $tmpFile = $_FILES['file']['tmp_name'];     
    $filename = $uploadDir.'/'.time().'-'. $_FILES['file']['name'];
        move_uploaded_file($tmpFile,$filename);
    }

谢谢

1 个答案:

答案 0 :(得分:0)

解释这个问题,我想您想通过一个电话上传多个文件。 为此,您需要停止默认情况下为true的autoProcessQueue

脚本:

Dropzone.options.myDropzone = {
        autoProcessQueue: false, //This stops auto processing
        acceptedFiles:".png,.jpg", //Change it according to your requirement.
        init: function(){
            var submit = document.querySelector('#submit');
            mydropzone = this;
            submit.addEventListener("click", function(){
                mydropzone.processQueue();
            });
            this.on("success", function(file,response){
               alert(response);
            });
        },
    };

HTML

<form action="upload.php" class="dropzone" id="myDropzone"></form>
<div>
    <button type="button" class="btn btn-info" id="submit">Upload</button>
</div>

PHP

<?php
$folderName = 'upload/';
if(!empty($_FILES))
{
    $file = $_FILES['file']['tmp_name'];
    $fileLocation = $folderName . $_FILES['file']['name'];
    move_uploaded_file($file,$fileLocation);
} ?>

希望这对您有所帮助:)