0

I converted a pdf file in base64 with javascript.

function convertToBase64() {
    //Read File
    var selectedFile = document.getElementById("inputFile").files;
            var cvfiles = document.getElementById("cvid");

    //Check File is not Empty
    if (selectedFile.length > 0) {
        // Select the very first file from list
        var fileToLoad = selectedFile[0];
        // FileReader function for read the file.
        var fileReader = new FileReader();
        var base64;
        // Onload of file read the file content
        fileReader.onload = function(fileLoadedEvent) {
            base64 = fileLoadedEvent.target.result;
            // Print data in console
            console.log("result" + base64);

           // console.log(base64);
        };
        // Convert data to base64
        fileReader.readAsDataURL(fileToLoad);



    }
}

An example of the result

 data:application/pdf;base64,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MCBSCj4+CmVuZG9iagoKMTEgMCBvYmoKPDwvRm9udCAxMCAwIFIKL1Byb2NTZXRbL1BERi9UZXh0XQo+PgplbmRvYmoKCjEgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCA0IDAgUi9SZXNvdXJjZXMgMTEgMCBSL01lZGlhQm94WzAgMCA1OTUuMzAzOTM3MDA3ODc0IDg0MS44ODk3NjM3Nzk1MjhdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDIgMCBSPj4KZW5kb2JqCgo0IDAgb2JqCjw8L1R5cGUvUGFnZXMKL1Jlc291cmNlcyAxMSAwIFIKL01lZGlhQm94WyAwIDAgNTk1IDg0MSBdCi9LaWRzWyAxIDAgUiBdCi9Db3VudCAxPj4KZW5kb2JqCgoxMiAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgNCAwIFIKL09wZW5BY3Rpb25bMSAwIFIgL1hZWiBudWxsIG51bGwgMF0KL0xhbmcoZW4tVVMpCj4+CmVuZG9iagoKMTMgMCBvYmoKPDwvQXV0aG9yPEZFRkYwMDREMDA2OTAwNjcwMDc1MDA2NTAwNkMwMDIwMDA1MjAwNkYwMDYzMDA2MTAwNjYwMDZGMDA3MjAwNzQ+Ci9DcmVhdG9yPEZFRkYwMDU3MDA3MjAwNjkwMDc0MDA2NTAwNzI+Ci9Qcm9kdWNlcjxGRUZGMDA0QzAwNjkwMDYyMDA3MjAwNjUwMDRGMDA2NjAwNjYwMDY5MDA2MzAwNjUwMDQ0MDA2NTAwNzYwMDIwMDAzNjAwMkUwMDMxPgovQ3JlYXRpb25EYXRlKEQ6MjAxOTA5MTcwODEyMzBaJyk+PgplbmRvYmoKCnhyZWYKMCAxNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDI3NzAgMDAwMDAgbiAKMDAwMDAwMDAxOSAwMDAwMCBuIAowMDAwMDAwMjIxIDAwMDAwIG4gCjAwMDAwMDI5MzkgMDAwMDAgbiAKMDAwMDAwMDI0MSAwMDAwMCBuIAowMDAwMDAxOTM4IDAwMDAwIG4gCjAwMDAwMDE5NTkgMDAwMDAgbiAKMDAwMDAwMjE1NCAwMDAwMCBuIAowMDAwMDAyNDg4IDAwMDAwIG4gCjAwMDAwMDI2ODMgMDAwMDAgbiAKMDAwMDAwMjcxNSAwMDAwMCBuIAowMDAwMDAzMDM4IDAwMDAwIG4gCjAwMDAwMDMxMzUgMDAwMDAgbiAKdHJhaWxlcgo8PC9TaXplIDE0L1Jvb3QgMTIgMCBSCi9JbmZvIDEzIDAgUgovSUQgWyA8RERFMDU4RkZGNTEzOTE4RUU3QkI0RDA0MTU5ODY4QUM+CjxEREUwNThGRkY1MTM5MThFRTdCQjREMDQxNTk4NjhBQz4gXQovRG9jQ2hlY2tzdW0gLzI4RkZDM0Q0REVENDU0Q0MzRjI1MUM3ODM3NkRDNDI3Cj4+CnN0YXJ0eHJlZgozMzkxCiUlRU9GCg==

Then I sent the result to create a ContentVersion

fileName = 'KKK.pdf' ;
ContentVersion cv = new ContentVersion();
cv.ContentLocation = 'S'; // S = within Salesforce, E = External
System.debug('file 64 ' + fileBody ) ;
cv.VersionData = EncodingUtil.base64Decode(fileBody) ;
cv.Title = fileName;
cv.PathOnClient = filename;
insert cv;

I tried with a pdf document, almost blank with a single word. to see if the problem was that the pdf is too big but I still have the same error message "unrecognized base64"

if I put

   Blob.valueOf(fileBody) 

instead of

   EncodingUtil.base64Decode(fileBody)

the Apex class does not send me an error. but the document file is wrong

1 Answer 1

0

You need to remove the pre-amble from your base64 string in Javascript i.e.

const base64Mark = 'base64,';
const dataStart = base64.indexOf(base64Mark) + base64Mark.length;

base64 = base64.substring(dataStart);

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .