1

私はhtml5アップロードスクリプトに取り組んでいます。ファイルストリームのすべてのチャンクに md5 ハッシュが必要です。

ここでは、ストリームの読み取りに FileReader を使用していますが、リーダーの結果を base64 クラスに渡すと、例外が発生しました。オブジェクトはプロパティまたはメソッド 'charCodeAt' をサポートしていません

var reader = new FileReader();
reader.onload = function (f) {
var hash = MD5(Base64.encode(f.target.result));
                };
reader.readAsArrayBuffer(blob)
4

3 に答える 3

3

これは仕事をします:

交換

reader.readAsArrayBuffer(blob);

reader.readAsText(blob);

http://www.w3.org/TR/FileAPI/#dfn-readAsText

于 2012-10-23T13:30:47.900 に答える
0

この方法を試す必要があります:-

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;
}
于 2012-10-23T13:42:03.740 に答える
0

あなたの場合、Base64は不要です。

var reader = new FileReader();
reader.onload = function (evt) {
    var hash = MD5(evt.target.result);
};
reader.readAsText(blob,'iso-8859-1');
于 2016-07-10T11:07:35.497 に答える