我在html5上传脚本工作。我想要文件流的每一块的md5散列。
下面是我使用FileReader来读取流,但是当我将reader结果传递给base64类时,我得到了异常。对象不支持属性或方法“”charCodeAt“”
var reader = new FileReader();
reader.onload = function (f) {
var hash = MD5(Base64.encode(f.target.result));
};
reader.readAsArrayBuffer(blob)发布于 2012-10-23 21:30:48
这将完成以下工作:
替换
reader.readAsArrayBuffer(blob);使用
reader.readAsText(blob);http://www.w3.org/TR/FileAPI/#dfn-readAsText
发布于 2012-10-23 21:42:04
你应该试着这样做:
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}
function str2ab(str) {
var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
var bufView = new Uint16Array(buf);
for (var i=0, strLen=str.length; i<strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}发布于 2016-07-10 19:07:35
在您的例子中,Base64是不必要的。
var reader = new FileReader();
reader.onload = function (evt) {
var hash = MD5(evt.target.result);
};
reader.readAsText(blob,'iso-8859-1');https://stackoverflow.com/questions/13031433
复制相似问题