2017-07-04 5 views
1

私はこのようになります私のページの[ダウンロード]ボタンがあります。href属性はJavaScriptによって読み込まれ、私のテストサーバー上で、それが正確に機能しているオクテットストリームデータURI <a>「ダウンロード」属性を無視し

<a download="test.jpg" href="data:application/octet-stream;base64,/9j/4AAQSkZ...">Download</a> 

を私は期待している通り:ファイル名が "test.jpg"の "名前を付けて保存"ダイアログボックスを表示します。

しかし、別のライブサーバーで全く同じコードを使用すると、ファイル名は破棄されます。 Chromeの場合

  • それがこれを引き起こしている可能性がどのようなファイル拡張子

ずに再び、一見ランダムな文字列として任意のアイデアを節約するのFirefoxでは、ファイル拡張子

  • せずに、「ダウンロード」として保存されます2つのサーバー間の動作の違い

  • 答えて

    1

    これは、オフサイトダウンロードを保存する際に適用されるセキュリティ対策です。プロトタイプは一致しないため(データとHTTP)、別のサイトとみなされ、デフォルトの名前が適用されます。 base64ではなくURL.createObjectURLを使用して、ダウンロードのhrefを入力します。 dataURL to Blob routine in my downlod.js libraryを取得し、BlobをcreateObjectURL()に渡すことができます。

    +0

    ありがとうございます!これは私にとって完璧に機能しました。 – Rich

    関連する問題