【发布时间】:2016-11-08 06:00:47
【问题描述】:
我正在尝试使用此 JS-Snippet 上传二进制文件(具体为 PDF):
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 时,我得到的不是预期的 ~3MB,而是 ~4MB,效果是我只有空白页。
传入请求的标头还指定了 ~4MB 的 Content-Length,所以我相当肯定,这是在客户端引起的问题。
发送纯文本文件完全没有问题,它们完全按照应有的方式到达。
由于编写 JavaScript 和在网络上工作不是我日常的工作领域,我很可能做错了什么。
【问题讨论】:
标签: javascript java html file-upload