我想上傳一個二進制文件(PDF是具體的)無效文件,這個JS-段:文件上傳:在服務器上
function uploadFile() {
var reader = new FileReader();
var file = document.getElementById('uploadInput').files[0];
console.log(file.size);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'custom?id=upload');
xhr.setRequestHeader("Content-Type", "application/pdf");
xhr.overrideMimeType('application/pdf');
reader.onload = function(evt) {
xhr.send(evt.target.result);
};
reader.readAsBinaryString(file);
}
在服務器端(Java)的我接收請求並將文件寫入磁盤。
但是,當我打開PDF時,我得到了〜4MB的空間,而我只有空白頁。
傳入請求的頭部還指定了一個〜4MB的內容長度,所以我相當肯定,它是在客戶端上的東西,這是造成麻煩。
發送純文本文件完全沒有問題,它們完全按照它們應有的方式到達。
由於編寫JavaScript和在網絡上工作不在我的日常工作領域,所以很可能我做了一些基本上是錯誤的。