hey*_*erk 8 javascript binary upload xmlhttprequest
我正在开发一个使用多种尖端WebKit功能的webapp.它实质上是这样的:FileReader
使用JavaScript解压缩库将每个文件解压缩到一个字符串中,然后使用XMLHttpRequest对每个文件进行POST,从而读取本地文件.这适用于文本文件,但遗憾的是它会破坏二进制文件(在本例中为图像).Firefox有一种sendAsBinary
解决这个问题的方法,但它是非标准的,更重要的是,它不适用于我们依赖于其他功能的WebKit/Chrome.
有一些解决方法,到目前为止,它们都不适用于我:
BlobBuilder
,将字符串附加到构建器,并使用getBlob
以获取要上载的blob(根据 Chrome问题线程中的建议)我最需要的是一个前向兼容的解决方案.谢谢!
我有同样的问题.
这个对我有用:
XMLHttpRequest.prototype.sendAsBinary = function(datastr) {
function byteValue(x) {
return x.charCodeAt(0) & 0xff;
}
var ords = Array.prototype.map.call(datastr, byteValue);
var ui8a = new Uint8Array(ords);
this.send(ui8a.buffer);
}
Run Code Online (Sandbox Code Playgroud)
点击这里:http://javascript0.org/wiki/Portable_sendAsBinary