1

私は phonegap と jquery を使って次のことをしようとしています。$.ajax() で画像を読み込んで localStorage に保存し、html ページに表示します。

$.ajax({
 type: 'GET',
 url: uri,
 success: function(data, textStatus, jqXHR) {
  if (textStatus === "notmodified") {
    console.log("NOT modified.");
  } else {
    console.log("download complete. Total Bytes: " + data.length);
    window.localStorage.setItem(fileName,btoa(encodeURIComponent(data)));
  }
 }
})

その後:

$('#info img').each( function() {
 var fileName = this.src;
 var pos = fileName.lastIndexOf('/');

 if(pos >= 0)
  fileName = fileName.substring(pos + 1);

 //Check for image
 var pos = fileName.lastIndexOf('.');
 var ext;
 if(pos >= 0)
   ext = fileName.substring(pos + 1);

 if(fileName in filesSynchronized)
  this.src = 'data:image/' + ext +';base64,' + window.localStorage[fileName];

しかし、画像が破損しています。私は何を間違っていますか?ajax は画像のバイト配列を返しませんか? btoa が正しく動作しませんか?

4

1 に答える 1

0

質問に答える 1 つの方法 -base64からエンコードされた画像を取得しlocalStorage、デコードして、ブラウザに送信したソース ファイルと比較します。

それらが同一でない場合、少なくとも 1 つの質問に対する答えは「はい」です。

于 2013-07-04T23:07:57.170 に答える