web-dev-qa-db-ja.com

ダウンロードする代わりに、ファイルがブラウザで開いています

私のPdfファイルはgoogleバケットに保存されており、リンクがあります https://storage.googleapis.com/bucketName/xyz.pdf 。このファイルをダウンロードするには、これを行っています。

<a href="https://storage.googleapis.com/bucketName/xyz.pdf" download> Download This File </a>

しかし、このアンカータグをクリックすると、このファイルブラウザーをダウンロードする代わりに、JavaScriptを介してファイルをダウンロードしようとしてこのコードを使用していたとしても、このファイルを同じタブで開きます。

var link = document.createElement("a");
link.download = 'File.pdf';
link.href = 'https://storage.googleapis.com/bucketName/xyz.pdf';
link.click();

しかし、ダウンロードの代わりに同じタブで開いているファイルでも同じことが起こります。主な問題は何ですか?このGoogleバケットはファイルのダウンロードを許可していませんか、またはchrome設定によりファイルのダウンロードが禁止されています。ChromeでダウンロードされていませんChrome CORSファイルからのダウンロードを許可します。

5
Amit Chauhan

解決

Content-Disposition添付ファイルは私にとってはうまくいくようです:

self.set_header("Content-Type", "application/json")
self.set_header("Content-Disposition", 'attachment; filename=learned_data.json')

Workaround

application/octet-stream

サーバー側の私にとっては、JSONで同様のことが起こっていました==ヘッダーをself.set_header( "Content-Type"、 "application/jsonに設定していました= ")ただし、次のように変更した場合:

self.set_header("Content-Type", "application/octet-stream")

自動的にダウンロードしました。

また、ファイルが.jsonサフィックスを保持するためには、ファイル名ヘッダーでそれを指定する必要があることも知っています。

self.set_header("Content-Disposition", 'filename=learned_data.json')
0
Mr-Programs