[英]How to send a url in form-data as a file using js or axios
我正在使用 vuejs 和 axios 將表單數據發送到 somelink。文件未發送並且出現錯誤
The parameter 'file' had the following problems: file transferred without multipart should be base64 encoded
我確實更改了 data.append('file', url) 並添加了另一個參數,例如 data.append('file', url,{type:'pdf'}) 但后來我收到一個錯誤,說第二個參數不是一團。 我知道這個問題是因為我在文件中使用了 url 而這我無法更改,因為正在發送文件的 api 文檔要求發送帶有文件的表單數據所以我試圖用實時 Z572D4E421E5E6B97118A 替換文件
var data = new FormData();
var url= 'https://storage.cloudconvert.com/xxxxx.pdf';
data.append('name','file')
data.append('filename', 'amjad');
data.append('file', url);
data.append('saved', 'true');
data.append('type', 'pdf');
axios.post('myapiurl',data, {
headers: {
'Content-Type': 'multipart/form-data'
},
}).then(res => {
console.log(res);
})
嘗試打開文件然后對其進行編碼..像這樣的東西..
function getPdf(){
// read text from URL location
var request = new XMLHttpRequest();
request.open('GET', 'https://storage.cloudconvert.com/xxxxx.pdf', true);
request.send(null);
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
var type = request.getResponseHeader('Content-Type');
if (type.indexOf("pdf") !== 1) {
return request.responseText;
}
}
}
}
// Encode the String
var pdf = btoa(getPdf());
var data = new FormData();
data.append('name','file')
data.append('filename', 'amjad');
data.append('file', pdf);
data.append('saved', 'true');
data.append('type', 'pdf');
axios.post('myapiurl',data, {
headers: {
'Content-Type': 'multipart/form-data'
},
}).then(res => {
console.log(res);
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.