我在远程服务器上有一个文件,它是二进制文件,我知道如何处理它的位。但我无法下载并使用Javascript将其呈现为二进制字符串以供浏览器使用。从我读到的,这是我得到的:
function loadFile() {
$.get('binaryfile.ext', function(data) {
new FileReader().readAsBinaryString(data);
});
}
但是我收到了这个错误:
Uncaught TypeError: Failed to execute 'readAsBinaryString' on 'FileReader': The argument is not a Blob.
文件正在正确下载,如果我document.write(data)
它按预期打印文件内容。
我在网上找不到工作方法或示例,我大概要搜索16个小时。
答案 0 :(得分:2)
不是百分百肯定这一点,但我相信你不能用jQuery的ajax方法获取二进制数据。现在html5
可能事情可能会发生一些变化。无论如何,这是一种可以做到这一点的黑客方式。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'binaryfile.ext', true);
// Hack to pass bytes through unprocessed.
xhr.overrideMimeType('text/plain; charset=x-user-defined');
xhr.onreadystatechange = function(e) {
if (this.readyState == 4 && this.status == 200) {
var binStr = this.responseText;
for (var i = 0, len = binStr.length; i < len; ++i) {
var c = binStr.charCodeAt(i);
//String.fromCharCode(c & 0xff);
var byte = c & 0xff; // byte at offset i
}
}
};
xhr.send();
您可以在此处找到更多信息:http://www.html5rocks.com/en/tutorials/file/xhr2/