Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
1 Antworten
1693 Ansichten

I have a widget where user will upload a pdf file and i've send that pdf to an external api . The api endpoint accepting .pdf file not binary . Odoo converted pdf or other file into binary. How can i get the raw pdf to send through the api ? 

Avatar
Verwerfen
Beste Antwort

** This is tested in ODOO V15 **

if you are using FileReader() in JavaScript before sending the file, 
the FileReader is appending the “data URI scheme” which makes it impossible for odoo to identify the file, as a result “application/octet-stream” is assigned to it when it's saved in ir_attatchement table,

the solution is to remove this prefix so that odoo can decode the base64 encoded file correctly and assign it the correct mimetype in ir_attatchement

 

handleFileChange(event) {

const file = event.target.files[0]; // Get the selected file

if (file) {

// If a file is selected, we need to read it (e.g., as base64 or binary)

const reader = new FileReader();

reader.onloadend = () => {

// Update the state using the setter function provided by useState

// the string below is removed so that odoo can recognize mimetype of pdf files

this.state.file = reader.result.replace(/^data:.+;base64,/, "");

};

reader.readAsDataURL(file); // Read the file as a data URL (base64 encoded)

} else {

this.state.file = null; // Clear the preview if no file is selected

}

}

Avatar
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
3
Aug. 25
2693
1
Mai 25
2683
1
Apr. 25
3673
1
Apr. 25
4525
1
Apr. 25
1987