簡體   English   中英

JS FormData 將文件作為應用程序/ocet-stream 發送,如何將其設置為 multipart/form-data?

[英]JS FormData sends file as application/ocet-stream, how to set it as multipart/form-data?

如標題所示,我正在嘗試使用以下方法將文件上傳到 Spring Rest Controller:

handleOnChange() {
    let inputFile = document.getElementById("file-input");
    this.file.file = inputFile.files[0];
    this.file.filename = inputFile.value;
}

render() {
    return (
        <div className="file-input">
                <input id="file-input" type="file"
                    onChange={(event) => this.handleOnChange()} />
        </div>
    );
}

upload() {
let formData = new FormData();
formData.append("file", this.data.file.file, "/D:/temp/test2.xlf");
formData.append("request", JSON.stringify(request));

let reqOptions = {
    method: 'POST',
    body: formData
}

fetch('http://127.0.0.1:8081/multi-mt-evaluation/report', reqOptions)
    .then(response => response.json())
    .then(data => console.log(data));
}

但是當 fetch 被調用時,文件作為 application/octet-stream 發送,是否有一種簡單或更復雜的方法將其設置為 multipart/form-data?

嘗試通過將其添加到您的請求標頭來指定內容類型:

let reqOptions = {
    method: 'POST',
    body: formData,
    headers: {
          'Content-Type': 'multipart/form-data',
    },
}    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM