From ac1bd586c9ed0ce72ed3cbacf53259a9e9b2e1d8 Mon Sep 17 00:00:00 2001 From: Xodrium <118943715+malloc62@users.noreply.github.com> Date: Fri, 10 Feb 2023 23:44:25 -0500 Subject: [PATCH] File uploading stuff --- src/lib/components/FileUpload.svelte | 44 ++++++++++++++++++++++------ src/lib/db/db.js | 37 +++++++++++++++++------ 2 files changed, 63 insertions(+), 18 deletions(-) diff --git a/src/lib/components/FileUpload.svelte b/src/lib/components/FileUpload.svelte index 568613b..9a8d5e8 100644 --- a/src/lib/components/FileUpload.svelte +++ b/src/lib/components/FileUpload.svelte @@ -7,6 +7,8 @@ let files; let preview; + let progress = 0; + function getBase64(image) { const reader = new FileReader(); reader.readAsDataURL(image); @@ -15,19 +17,40 @@ uploadFunction(e.target.result); }; }; + async function uploadFunction(imageD) { + const imgData = imageD.split(',').pop(); - async function uploadFunction(imgBase64) { - const imgData = imgBase64.split(',').pop(); + var images = []; - var fData = (new FormData()); + var fSize = 1024 * 256; - fData.append('img',imgData); - fData.append('extension',fileInput.value.split('.').pop()); + for (var i = 0; i * fSize < imgData.length + 1; i++) { + images.push(imgData.substring(i * fSize, i * fSize + fSize)); + } + + var rId = (Math.random() + 1).toString(36).substring(7);; + var extension = fileInput.value.split('.').pop(); + + for (var i = 0; i < images.length; i++) { + var fData = (new FormData()); + + var image = images[i]; + + fData.append('img',image); + fData.append('extension',extension); + fData.append('last',i == (images.length - 1)); + fData.append('id',rId); - form = await fetch(`/api/fileCreate`, { method: 'POST', - body: fData - }).then(x => x.json()); + form = await fetch(`/api/fileCreate`, { + method: 'POST', + body: fData, + }).then(x => x.json()); + + progress = (i+1) / (images.length); + + await setTimeout(() => new Promise.resolve(),100); + } }; @@ -42,13 +65,16 @@ } -