2014-01-08 97 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/