diff --git a/src/main/resources/static/js/downloader.js b/src/main/resources/static/js/downloader.js index 900e2539a..d70198089 100644 --- a/src/main/resources/static/js/downloader.js +++ b/src/main/resources/static/js/downloader.js @@ -43,6 +43,14 @@ firstErrorOccurred = false; const url = this.action; let files = $('#fileInput-input')[0].files; + const uploadLimit = window.stirlingPDF?.uploadLimit ?? 0; + if (uploadLimit > 0) { + const oversizedFile = Array.from(files).find(f => f.size > uploadLimit); + if (oversizedFile) { + alert(`"${oversizedFile.name}" is too large. Maximum allowed size is ${window.stirlingPDF.uploadLimitReadable}.`); + return; + } + } const formData = new FormData(this); const submitButton = document.getElementById('submitBtn'); const showGameBtn = document.getElementById('show-game-btn'); diff --git a/src/main/resources/static/js/fileInput.js b/src/main/resources/static/js/fileInput.js index 28331ef01..d315f01cf 100644 --- a/src/main/resources/static/js/fileInput.js +++ b/src/main/resources/static/js/fileInput.js @@ -179,6 +179,18 @@ function setupFileInput(chooser) { await checkZipFile(); + const uploadLimit = window.stirlingPDF?.uploadLimit ?? 0; + if (uploadLimit > 0) { + const oversizedFile = allFiles.find(f => f.size > uploadLimit); + if (oversizedFile) { + alert(`"${oversizedFile.name}" is too large. Maximum allowed size is ${window.stirlingPDF.uploadLimitReadable}.`); + allFiles = []; + input.value = ''; + inputContainer.querySelector('#fileInputText').innerHTML = originalText; + return; + } + } + allFiles = await Promise.all( allFiles.map(async (file) => { let decryptedFile = file;