url ファイル ダウンロード
RFC-6266で定義されているのがContent-Dispositionフィールドです。これを使うと、サーバーの指示で、ブラウザの内部の表示設定を無視してダウンロードを強制させられます。また、ファイル保存時のファイル名を設定できます。MDNの説明がわかりやすいです。
なお、MDNのサンプルにはありませんが、inlineにfilenameをつけるのもRFCの文法説明的にはOKです。この場合、Chromeで試すと、ブラウザがインライン表示できるContent-Typeなら表示し、そうでなければ指定されたファイル名で保存する、という動作になっているように思います。
各ブラウザーにおけるdownlord属性の対応状況ですが、IE以外のブラウザーで最新のものであれば問題なく使える認識で大丈夫そうです。もしdownlord属性が使えない旧ブラウザーへの対応を考えるならtarget=”_blank”を併記してダウンロードされない場合は別ページで該当ファイルを開かせるような対策がいいかもしれません。downlord属性に対応したブラウザーの場合はダウンロードが優先されるので、target=”_blank”を併記したとしても別ページが開かれる心配はなさそうです。
まず、強制ダウンロードではないがファイル名を指定する必要があるため、サーバーとしては次のフィールドをレスポンスにつけます。
もしファイル形式が画像やPDFファイルなら、右クリックから手動でダウンロード可能です。
download属性でダウンロード可能なのは、同一オリジンの場合のみです。
まずはこのAPIを呼んで、その結果帰ってくる URLからダウンロードします。
こういった場合、もし仮にダウンロードさせたいファイルをリンクタグ()でリンクさせたとしても、同ファイルが表示されるだけで、ダウンロードさせる機能とは違ってきます。。。
また、ファイルをzip形式に圧縮した場合、リンクタグでリンクすることでダウンロードさせることはできますが、一度解凍しないと使用できないなどの不便が生じ、要望とは違うかもしれません。。。
書き方はとても簡単で、hrefにダウンロードさせたいファイルまでのパスを指定し、属性downloadを記述するだけです。これで、該当のファイルのリンクを開くのではなく、ダウンロードさせることができます。
ファイルのダウンロード エラーの修正方法をご確認ください。
download=として“”内にダウンロードされたときに表示させたいファイル名、それと、.pdf .jpgなどダウロードさせたいファイルの拡張子を記述することで指定のファイル名に変換されたファイルがダウロードされます。
なお、hrefをいじればフロント側で動的に作ったコンテンツをダウンロードさせることも可能です。
こういったダウンロードリンクを作成するには、aタグのdownload属性を使用するだけで簡単に実装できます!
デフォルトのダウンロード保存先を初期状態から変更していない場合、ファイルは次の場所にダウンロードされます。
例2では、元のファイル名はsample.pdfですが、download属性にはexample.pdfを指定しているので、ダウンロード時にはexample.pdfとして保存されます。