1

I am developing a visualforce page. I'm trying to upload pdf-file from remote server in contentversion , here is part of my code:

let response = await fetch('http://www.africau.edu/images/default/sample.pdf');
let blob = await response.blob();
let filename = 'File.pdf';
let _file = new File([blob], filename); 

let cv = new sforce.SObject('ContentVersion');
cv.Title        = filename;
cv.PathOnClient = filename;
cv.VersionData  = blob;
cv.VersionData = cv.VersionData.substring(dataStart);
cv.ContentLocation = 'S';

let result = await sforce.connection.create([cv]);
console.log('result > ', result);

But file in ContentVersion is wrong. Any ideas?

Upd.: an interesting thing: if I'll set js debugs and try to download file locally (not to sf) - then I can do it. But only with debug points

0

You have to make sure that the VersionData has base64 encoded string for the file.

Add one more function to convertBlobtoBase64

export const convertBlobToBase64 = blob => new Promise((resolve, reject) => {
  const reader = new FileReader;
  reader.onerror = reject;
  reader.onload = () => {
     resolve(reader.result);
  };
  reader.readAsDataURL(blob);
});

Then modify your code to

let response = await 
 fetch('http://www.africau.edu/images/default/sample.pdf');
 let blob = await response.blob()
 .then(convertBlobToBase64)
 .then((result) => {
            fileContent = result;
            const base64Constant = 'base64,';
            const base64ImageValue =
                fileContent.indexOf(base64Constant) + base64Constant.length;
            this.base64Data = fileContent.substring(base64ImageValue);
            let cv = new sforce.SObject('ContentVersion');
            cv.Title = filename;
            cv.PathOnClient = filename;
            cv.VersionData  = blob;
            cv.VersionData = cv.VersionData.substring(dataStart);
            cv.ContentLocation = 'S';

            let result = await sforce.connection.create([cv]);
            console.log('result > ', result);
     });

You can then use the Base64 encoded string in versionData

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.