コンテンツへスキップ
メニュー
この質問にフラグが付けられました
1 返信
1682 ビュー

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 ? 

アバター
破棄
最善の回答

** 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

}

}

アバター
破棄
関連投稿 返信 ビュー 活動
3
8月 25
2672
1
5月 25
2670
1
4月 25
3671
1
4月 25
4521
1
4月 25
1986