diff --git a/src/utils.js b/src/utils.js index f6ecedb659cc50a622200e64bd69f5ae217e59dc..9542c6c6ce05e7c04bc703d4b9bef411cbf45d50 100644 --- a/src/utils.js +++ b/src/utils.js @@ -44,3 +44,14 @@ export const getDataURIContentType = (dataURI) => { return dataURI.substring(5, base64Index); }; + +export const baseName = (str) => +{ + let base = String(str).substring(str.lastIndexOf('/') + 1); + + if(base.lastIndexOf(".") !== -1) { + base = base.substring(0, base.lastIndexOf(".")); + } + + return base; +}; diff --git a/src/vpu-signature-pdf-upload.js b/src/vpu-signature-pdf-upload.js index f538449d3581fd5e57992616675ebd82c014bf27..133a55af12cc04ea4a6ce599899ed82ed853798b 100644 --- a/src/vpu-signature-pdf-upload.js +++ b/src/vpu-signature-pdf-upload.js @@ -102,12 +102,19 @@ class SignaturePdfUpload extends VPUSignatureLitElement { // see: https://stuk.github.io/jszip/ let zip = new JSZip(); const that = this; + let fileNames = []; // add all signed pdf files this.files.forEach((file) => { - console.log(file); - // TODO: check for duplicate file names - zip.file(file.fileName, utils.getPDFFileBase64Content(file), {base64: true}); + let fileName = file.fileName; + + // + if (fileNames.indexOf(fileName) !== -1) { + fileName = utils.baseName(fileName) + "-" + Math.random().toString(36).substring(7) + ".pdf"; + } + + fileNames.push(fileName); + zip.file(fileName, utils.getPDFFileBase64Content(file), {base64: true}); }); zip.generateAsync({type:"blob"})