2016-11-16 20 views
1

私は、base64文字列の形式でビットマップデータを与えるサービスを持っています。クライアント側のJavaスクリプトからbase64文字列(ビットマップデータ)を保存する

私のサービスからHTML5アプリケーションにデータを取得するためにajax呼び出しを使用しています。これは、画像を開い

var ImgData = "data:image/bmp;base64," + response.serviceResult; 
    window.location.href = ImgData; 

を次のように

 jQuery.ajax({ 
      url: MY_SERVICE_URL, 
      type: "GET", 
      dataType: "json", 
      success: ImageCaptured, 
      error: AjaxFailed 
     }); 

"ImageCaptured" 方法です。しかし、私の要件は、画像をローカルに保存することです。

私はまた、これは私にネットワークエラーが発生します

var link = document.createElement('a'); 
    link.href = ImgData; 
    link.download = "Image.bmp"; 
    link.click(); 

を使用してみました。

何か不足していますか?どのように行うにはどのようなアイデアですか?

ありがとうございます。

編集:画像をローカルに保存するには、ダウンロードダイアログを開く必要があります。 の画像を表示することができます。imgタグ

+0

画像をローカルにどのくらい正確に保存しますか? dowloadファイルのダイアログを開くか、HTMLにイメージタグを挿入するだけですか? – adeneo

+0

@adeneo:イメージタグを挿入できます。ダウンロードファイルダイアログを開く必要があります。 – sam

答えて

0

解決方法が見つかりました。これが他人を助けることを望みます。

"ImageCaptured"機能に変更がありました。

var ImgData = "data:image/octet-stream;base64," + response.serviceResult; 

    var link = document.createElement('a'); 
    link.href = ImgData; 
    link.download = FileName + ".bmp"; 
    document.body.appendChild(link); 
    link.click(); 
    document.body.removeChild(link); 

これは、ブラウザから画像を強制的にダウンロードします。

関連する問題