2014-01-08 127 views
0

我在远程服务器上有一个文件,它是二进制文件,我知道如何处理它的位。但是我无法下载并使用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小时搜索。

回答

1

不是百分之百肯定这件事,但我相信你不能用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/