support for pasting files

This commit is contained in:
nokonoko 2021-06-23 19:18:07 +02:00
parent d90f9e58e9
commit c036012e55
2 changed files with 16 additions and 2 deletions

View File

@ -1,6 +1,8 @@
/**
* Copyright (c) 2016 Luminarys <postmaster@gensok.io>
*
* Copyright (c) 2021 Eric Johansson (Nekunekus) <neku@pomf.se>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
@ -20,7 +22,7 @@
* SOFTWARE.
*/
document.addEventListener('DOMContentLoaded', function() {
document.addEventListener('DOMContentLoaded', function() {
/**
* Sets up the elements inside file upload rows.
*
@ -251,6 +253,17 @@ document.addEventListener('DOMContentLoaded', function() {
target.click();
}
/* Handles the pasting function */
window.addEventListener("paste", e =>{
var len = e.clipboardData.files.length;
for (var i = 0; i < len; i++) {
var file = e.clipboardData.files[i];
var row = addRow(file);
uploadFile(file, row);
}
});
/* Set-up the event handlers for the <button>, <input> and the window itself
and also set the "js" class on selector "#upload-form", presumably to
allow custom styles for clients running javascript. */
@ -261,6 +274,7 @@ document.addEventListener('DOMContentLoaded', function() {
window.addEventListener('drop', handleDragAway.bind(this, state, uploadButton), false);
window.addEventListener('dragover', stopDefaultEvent, false);
var uploadInput = document.getElementById('upload-input');
uploadInput.addEventListener('change', uploadFiles);
uploadButton.addEventListener('click', selectFiles.bind(this, uploadInput));

View File

@ -1,5 +1,5 @@
<form id="upload-form" enctype="multipart/form-data" method="post" action="upload.php?output=html">
<button id="upload-btn" class="btn" type="button">Select or drop file(s)</button>
<button id="upload-btn" class="btn" type="button">Drop or paste file(s)</button>
<input type="file" id="upload-input" name="files[]" multiple data-max-size="{{max_upload_size}}MiB">
<input type="submit" value="Submit">
</form>