我正在尝试使用XMLHttpRequest将文件(图像)上传到我的服务器端,好吧,我在发送之前检查文件大小并检查我的请求标题上的内容长度,它们不一样,这里是代码:
var file = 'someFile';
var readers = new FileReader();
readers.readAsBinaryString(file);
readers.onload = (function(theFile) {
return function(e) {
var myData = e.target.result;
console.log(myData.length); // this output is 5548
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader('Content-Type', 'application/octet-stream;');
// send the collected data as JSON
xhr.send(myData );
xhr.onloadend = function () {
// done
};
})(file);
当我在我的标题请求中查看内容长度时,我发现长度大于actaul大小,有些数字如~7500,
我如何确保请求文件数据与文件的实际大小相同?
答案 0 :(得分:1)
当您发送文件内容时,它通常以base64编码的字符串形式发送。这个请求的大小增加了大约30%。因此
console.log(myData.length); // this output is 5548
文件的大小不是它的长度。您可以使用File.name