Dropzone auto uploads the selected file or drag file to the server.
Sometimes, it requires uploading all selected files on a single click instead of uploading it instantly.
With Dropzone options and method this can easily be implemented.
In this tutorial, I show how you upload all selected files in the Dropzone area on a button click.
Contents
1. Download & Include
- Download the Dropzone library from here.
- Include
dropzone.min.css
in<head>
section.
<link href='https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/dropzone.css' type='text/css' rel='stylesheet'>
- Include jQuery library and
dropzone.min.js
script at end of<body>
section.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/dropzone.js' type='text/javascript'></script>
2. Create Dropzone Layout
Create an index.html
file.
Create a <form action="upload.php" class="dropzone">
and a button to upload all dragged files on a click.
Completed Code
<div class="container" > <div class='content'> <form action="upload.php" class="dropzone" > </form> </div> <input type="button" id='uploadfiles' value='Upload Files' > </div>
3. Create PHP file to upload file
Create an upload.php
file and an uploads
folder.
Assign upload directory path in $target_dir
and file path in $target_file
.
Upload the file to uploads
folder.
Completed Code
<?php // Upload directory $target_dir = "uploads/"; // Upload file $target_file = $target_dir . basename($_FILES["file"]["name"]); $msg = ""; if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { $msg = "Successfully uploaded"; }else{ $msg = "Error while uploading"; } echo $msg; exit;
4. Script
Call Dropzone.autoDiscover = false;
to disable Dropzone auto-discovery.
Initialize dropzone on class='dropzone'
and to stop dropzone from uploading the selected file add autoProcessQueue: false
option.
Also, define parallelUploads
option to set the maximum number of files process at a time. The default value is 2.
On button click call myDropzone.processQueue()
to upload the files.
Completed Code
Dropzone.autoDiscover = false; var myDropzone = new Dropzone(".dropzone", { autoProcessQueue: false, parallelUploads: 10 // Number of files process at a time (default 2) }); $('#uploadfiles').click(function(){ myDropzone.processQueue(); });
5. Demo
6. Conclusion
Explicitly define dropzone on the selector and add autoProcessQueue: false
option to stop files from auto uploading.
Call processQueue()
on Dropzone instance to upload files.