1
0
Fork 0
mirror of https://github.com/24eme/signaturepdf synced 2024-06-29 19:01:02 +02:00

Upload multiple files at the same time

This commit is contained in:
Vincent LAURENT 2022-05-23 23:57:14 +02:00
parent 9c07ef9355
commit a3236c8368
2 changed files with 19 additions and 15 deletions

View file

@ -49,7 +49,7 @@ var loadPDF = async function(pdfBlob, filename, pdfIndex) {
let pdfLetter = String.fromCharCode(96 + i+1).toUpperCase(); let pdfLetter = String.fromCharCode(96 + i+1).toUpperCase();
let loadingTask = pdfjsLib.getDocument(url); let loadingTask = pdfjsLib.getDocument(url);
loadingTask.promise.then(function(pdf) { await loadingTask.promise.then(function(pdf) {
for(var pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++ ) { for(var pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++ ) {
pdf.getPage(pageNumber).then(function(page) { pdf.getPage(pageNumber).then(function(page) {
let pageIndex = pdfLetter + "_" + (page.pageNumber - 1); let pageIndex = pdfLetter + "_" + (page.pageNumber - 1);
@ -149,6 +149,8 @@ var loadPDF = async function(pdfBlob, filename, pdfIndex) {
}, function (reason) { }, function (reason) {
console.error(reason); console.error(reason);
}); });
return loadingTask;
}; };
var pageRenderAll = function() { var pageRenderAll = function() {
@ -406,20 +408,22 @@ var createEventsListener = function() {
document.getElementById('save').click(); document.getElementById('save').click();
}); });
document.getElementById('input_pdf_upload_2').addEventListener('change', async function(event) { document.getElementById('input_pdf_upload_2').addEventListener('change', async function(event) {
if(this.files[0].size > maxSize) { console.log(this.files.length);
for (let i = 0; i < this.files.length; i++) {
if(this.files[i].size > maxSize) {
alert("Le PDF ne doit pas dépasser " + Math.round(maxSize/1024/1024) + " Mo"); alert("Le PDF ne doit pas dépasser " + Math.round(maxSize/1024/1024) + " Mo");
this.value = ""; break;
return;
} }
const cache = await caches.open('pdf'); const cache = await caches.open('pdf');
let filename = this.files[0].name; let filename = this.files[i].name;
let response = new Response(this.files[0], { "status" : 200, "statusText" : "OK" }); let response = new Response(this.files[i], { "status" : 200, "statusText" : "OK" });
let urlPdf = '/pdf/'+filename; let urlPdf = '/pdf/'+filename;
await cache.put(urlPdf, response); await cache.put(urlPdf, response);
let pdfBlob = await getPDFBlobFromCache(urlPdf); let pdfBlob = await getPDFBlobFromCache(urlPdf);
nbPDF++; nbPDF++;
loadPDF(pdfBlob, filename, nbPDF); await loadPDF(pdfBlob, filename, nbPDF);
}
this.value = ''; this.value = '';
}); });
document.getElementById('btn-zoom-decrease').addEventListener('click', function(event) { document.getElementById('btn-zoom-decrease').addEventListener('click', function(event) {

View file

@ -57,12 +57,12 @@
<h5 class="mb-1 d-block w-100" id="sidebarToolsLabel">Organisation de PDF <span class="float-end me-2" title="Ce PDF est stocké sur votre ordinateur pour être signé par vous uniquement"><i class="bi-ui-checks-grid"></i></span></h5> <h5 class="mb-1 d-block w-100" id="sidebarToolsLabel">Organisation de PDF <span class="float-end me-2" title="Ce PDF est stocké sur votre ordinateur pour être signé par vous uniquement"><i class="bi-ui-checks-grid"></i></span></h5>
<button type="button" class="btn-close text-reset d-md-none" data-bs-dismiss="offcanvas" aria-label="Close"></button> <button type="button" class="btn-close text-reset d-md-none" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div> </div>
<div class="offcanvas-body pt-3"> <div class="offcanvas-body pt-3" style="padding-bottom: 60px;">
<ul id="list_pdf" class="list-group"> <ul id="list_pdf" class="list-group">
</ul> </ul>
<div class="d-grid gap-2 mt-2"> <div class="d-grid gap-2 mt-2">
<button type="button" class="btn btn-sm btn-outline-dark" onclick="document.getElementById('input_pdf_upload_2').click();"><i class="bi bi-plus-circle"></i> Ajouter un PDF</button> <button type="button" class="btn btn-sm btn-outline-dark" onclick="document.getElementById('input_pdf_upload_2').click();"><i class="bi bi-plus-circle"></i> Ajouter un PDF</button>
<input id="input_pdf_upload_2" class="form-control d-none" type="file" accept=".pdf,application/pdf"> <input id="input_pdf_upload_2" class="form-control d-none" type="file" accept=".pdf,application/pdf" multiple="true">
</div> </div>
<hr /> <hr />
<div id="container_btn_select" class="opacity-50 card"> <div id="container_btn_select" class="opacity-50 card">