2016-06-14 18 views
1

現在、FileReaderを使用してChromeで動作するPDFを開いて表示します。しかし、Safariでpdfを開き、ダウンロードボタンをクリックしても何も起こりません。同様の問題に取り組んで全体の一日を過ごした後Safariでpdlob blob urlをダウンロードできません

var reader = new FileReader(); 
reader.onloadend = function(e) { 
    $window.location.href = reader.result; 
} 
reader.readAsDataURL(file); 
+0

これも私と一緒に起こっています。 @タイラーあなたは解決策を見つけましたか? –

+0

@AbhishekPrakash私は気付いていない、IEは一定の長さ以上のBLOB URLを許可しないので、私はサーバーソリューションに切り替えました。 –

答えて

1

問題は、私は今あなたと私の知識を共有することができましたところ、私は理解しました。

blob:http://localhost:8080/9bbeffe1-b0e8-485d-a8bd-3ae3ad9a0a51

PDFファイルを必要とするため、間違った手順のようになります。のようなもので、あなたのページのURLが変更されて、あなたがすでに開いているブラウザタブ内Blobをレンダリングする場合、基本的に、この種の問題が発生する

var fileBlob = new Blob([response.data], {type: 'application/pdf'}); window.location.hfref = fileBlob;

なぜこの仕事はしていません。このような何か? さて、あなたはあなたのpdfがうまく読み込まれていると思うことに騙されるかもしれないので、ページにレンダリングされたPDFを見ることができます。ただし、ページを更新するか、お使いのマシンでpdfをダウンロードしようとすると、動作しません。

WTH? 最初に私はブラウザの周りに黒い魔法があると考えていましたが、問題はわかりました。 ファイルは存在しませんが、ブラウザ内には唯一のキャッシュが保存されています。したがって、BLOBを生成し、現在のタブを生成されたBLOB URLを指すようにリダイレクトすると、キャッシュが失われます。

今はすべてが正しいと思いますか?あなたは、サーバー

  • 上のファイルブラウザは、あなたがPDFファイルを参照してくださいが、同時にバッファ
  • を読むためにあなたのページのURLを指すタブ
  • 内部バッファを保存を要求

    1. 、あなたバッファ情報を失う

    ザ・あなただけは、と新しいタブでブロブのURLを開いている行うことができると思います。

    window.open(fileBlob, '_blank');

    問題を解決しました。

  • 関連する問題