<link href="assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css"/>
<script src="assets/plugins/global/plugins.bundle.js"></script>
sass/vendors/plugins/_dropzone.scss
SCSS file in order to use it as native component within the design system. The SCSS code is compiled into
assets/plugins/global/plugins.bundle.css
and globally included in all pages.src/js/vendors/plugins/dropzone.init.js
and the initialization code is bundled within
assets/plugins/global/plugins.bundle.js
and globally included in all pages.
var myDropzone = new Dropzone("#kt_dropzonejs_example_1", {
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
paramName: "file", // The name that will be used to transfer the file
maxFiles: 10,
maxFilesize: 10, // MB
addRemoveLinks: true,
accept: function(file, done) {
if (file.name == "wow.jpg") {
done("Naha, you don't.");
} else {
done();
}
}
});
<!--begin::Form-->
<form class="form" action="#" method="post">
<!--begin::Input group-->
<div class="fv-row">
<!--begin::Dropzone-->
<div class="dropzone" id="kt_dropzonejs_example_1">
<!--begin::Message-->
<div class="dz-message needsclick">
<!--begin::Icon-->
<i class="bi bi-file-earmark-arrow-up text-primary fs-3x"></i>
<!--end::Icon-->
<!--begin::Info-->
<div class="ms-4">
<h3 class="fs-5 fw-bolder text-gray-900 mb-1">Drop files here or click to upload.</h3>
<span class="fs-7 fw-bold text-gray-400">Upload up to 10 files</span>
</div>
<!--end::Info-->
</div>
</div>
<!--end::Dropzone-->
</div>
<!--end::Input group-->
</form>
<!--end::Form-->
// set the dropzone container id
var id = "#kt_dropzonejs_example_2";
// set the preview element template
var previewNode = $(id + " .dropzone-item");
previewNode.id = "";
var previewTemplate = previewNode.parent(".dropzone-items").html();
previewNode.remove();
var myDropzone = new Dropzone(id, { // Make the whole body a dropzone
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
parallelUploads: 20,
previewTemplate: previewTemplate,
maxFilesize: 1, // Max filesize in MB
autoQueue: false, // Make sure the files aren't queued until manually added
previewsContainer: id + " .dropzone-items", // Define the container to display the previews
clickable: id + " .dropzone-select" // Define the element that should be used as click trigger to select files.
});
myDropzone.on("addedfile", function(file) {
// Hookup the start button
file.previewElement.querySelector(id + " .dropzone-start").onclick = function() { myDropzone.enqueueFile(file); };
$(document).find( id + " .dropzone-item").css("display", "");
$( id + " .dropzone-upload, " + id + " .dropzone-remove-all").css("display", "inline-block");
});
// Update the total progress bar
myDropzone.on("totaluploadprogress", function(progress) {
$(this).find( id + " .progress-bar").css("width", progress + "%");
});
myDropzone.on("sending", function(file) {
// Show the total progress bar when upload starts
$( id + " .progress-bar").css("opacity", "1");
// And disable the start button
file.previewElement.querySelector(id + " .dropzone-start").setAttribute("disabled", "disabled");
});
// Hide the total progress bar when nothing's uploading anymore
myDropzone.on("complete", function(progress) {
var thisProgressBar = id + " .dz-complete";
setTimeout(function(){
$( thisProgressBar + " .progress-bar, " + thisProgressBar + " .progress, " + thisProgressBar + " .dropzone-start").css("opacity", "0");
}, 300)
});
// Setup the buttons for all transfers
document.querySelector( id + " .dropzone-upload").onclick = function() {
myDropzone.enqueueFiles(myDropzone.getFilesWithStatus(Dropzone.ADDED));
};
// Setup the button for remove all files
document.querySelector(id + " .dropzone-remove-all").onclick = function() {
$( id + " .dropzone-upload, " + id + " .dropzone-remove-all").css("display", "none");
myDropzone.removeAllFiles(true);
};
// On all files completed upload
myDropzone.on("queuecomplete", function(progress){
$( id + " .dropzone-upload").css("display", "none");
});
// On all files removed
myDropzone.on("removedfile", function(file){
if(myDropzone.files.length < 1) {
$( id + " .dropzone-upload, " + id + " .dropzone-remove-all").css("display", "none");
}
});
<!--begin::Form-->
<form class="form" action="#" method="post">
<!--begin::Input group-->
<div class="form-group row">
<!--begin::Label-->
<label class="col-lg-2 col-form-label text-lg-right">Upload Files:</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-10">
<!--begin::Dropzone-->
<div class="dropzone dropzone-queue mb-2" id="kt_dropzonejs_example_2">
<!--begin::Controls-->
<div class="dropzone-panel mb-lg-0 mb-2">
<a class="dropzone-select btn btn-sm btn-primary me-2">Attach files</a>
<a class="dropzone-upload btn btn-sm btn-light-primary me-2">Upload All</a>
<a class="dropzone-remove-all btn btn-sm btn-light-primary">Remove All</a>
</div>
<!--end::Controls-->
<!--begin::Items-->
<div class="dropzone-items wm-200px">
<div class="dropzone-item" style="display:none">
<!--begin::File-->
<div class="dropzone-file">
<div class="dropzone-filename" title="some_image_file_name.jpg">
<span data-dz-name>some_image_file_name.jpg</span>
<strong>(<span data-dz-size>340kb</span>)</strong>
</div>
<div class="dropzone-error" data-dz-errormessage></div>
</div>
<!--end::File-->
<!--begin::Progress-->
<div class="dropzone-progress">
<div class="progress">
<div
class="progress-bar bg-primary"
role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" data-dz-uploadprogress>
</div>
</div>
</div>
<!--end::Progress-->
<!--begin::Toolbar-->
<div class="dropzone-toolbar">
<span class="dropzone-start"><i class="bi bi-play-fill fs-3"></i></span>
<span class="dropzone-cancel" data-dz-remove style="display: none;"><i class="bi bi-x fs-3"></i></span>
<span class="dropzone-delete" data-dz-remove><i class="bi bi-x fs-1"></i></span>
</div>
<!--end::Toolbar-->
</div>
</div>
<!--end::Items-->
</div>
<!--end::Dropzone-->
<!--begin::Hint-->
<span class="form-text text-muted">Max file size is 1MB and max number of files is 5.</span>
<!--end::Hint-->
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
</form>
<!--end::Form-->
// set the dropzone container id
var id = "#kt_dropzonejs_example_3";
// set the preview element template
var previewNode = $(id + " .dropzone-item");
previewNode.id = "";
var previewTemplate = previewNode.parent(".dropzone-items").html();
previewNode.remove();
var myDropzone = new Dropzone(id, { // Make the whole body a dropzone
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
parallelUploads: 20,
maxFilesize: 1, // Max filesize in MB
previewTemplate: previewTemplate,
previewsContainer: id + " .dropzone-items", // Define the container to display the previews
clickable: id + " .dropzone-select" // Define the element that should be used as click trigger to select files.
});
myDropzone.on("addedfile", function(file) {
// Hookup the start button
$(document).find( id + " .dropzone-item").css("display", "");
});
// Update the total progress bar
myDropzone.on("totaluploadprogress", function(progress) {
$( id + " .progress-bar").css("width", progress + "%");
});
myDropzone.on("sending", function(file) {
// Show the total progress bar when upload starts
$( id + " .progress-bar").css("opacity", "1");
});
// Hide the total progress bar when nothing"s uploading anymore
myDropzone.on("complete", function(progress) {
var thisProgressBar = id + " .dz-complete";
setTimeout(function(){
$( thisProgressBar + " .progress-bar, " + thisProgressBar + " .progress").css("opacity", "0");
}, 300)
});
<!--begin::Form-->
<form class="form" action="#" method="post">
<!--begin::Input group-->
<div class="form-group row">
<!--begin::Label-->
<label class="col-lg-2 col-form-label text-lg-right">Upload Files:</label>
<!--end::Label-->
<!--begin::Col-->
<div class="col-lg-10">
<!--begin::Dropzone-->
<div class="dropzone dropzone-queue mb-2" id="kt_dropzonejs_example_3">
<!--begin::Controls-->
<div class="dropzone-panel mb-lg-0 mb-2">
<a class="dropzone-select btn btn-sm btn-primary me-2">Attach files</a>
<a class="dropzone-remove-all btn btn-sm btn-light-primary">Remove All</a>
</div>
<!--end::Controls-->
<!--begin::Items-->
<div class="dropzone-items wm-200px">
<div class="dropzone-item" style="display:none">
<!--begin::File-->
<div class="dropzone-file">
<div class="dropzone-filename" title="some_image_file_name.jpg">
<span data-dz-name>some_image_file_name.jpg</span>
<strong>(<span data-dz-size>340kb</span>)</strong>
</div>
<div class="dropzone-error" data-dz-errormessage></div>
</div>
<!--end::File-->
<!--begin::Progress-->
<div class="dropzone-progress">
<div class="progress">
<div
class="progress-bar bg-primary"
role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" data-dz-uploadprogress>
</div>
</div>
</div>
<!--end::Progress-->
<!--begin::Toolbar-->
<div class="dropzone-toolbar">
<span class="dropzone-delete" data-dz-remove><i class="bi bi-x fs-1"></i></span>
</div>
<!--end::Toolbar-->
</div>
</div>
<!--end::Items-->
</div>
<!--end::Dropzone-->
<!--begin::Hint-->
<span class="form-text text-muted">Max file size is 1MB and max number of files is 5.</span>
<!--end::Hint-->
</div>
<!--end::Col-->
</div>
<!--end::Input group-->
</form>
<!--end::Form-->