ファイルをダウンロードできるリンクは、aタグ
にdownload属性を付けるだけで簡単に実装できます。
たとえば PDFマニュアルや画像をユーザーに配布したいとき、以下のように書くだけでOKです。
<a href="./pdf/sample.pdf" download="sample.pdf">クリックでダウンロード</a>
このようにシンプルなコードですが、さらにファイル名を指定できる便利さや、一部ブラウザでの注意点もあります。
この記事では、aタグのdownload属性
の使い方から注意点まで、初心者にもわかりやすく解説していきます。
aタグのdownload属性とは?
aタグ
のdownload属性とは、リンクをクリックしたときに「ページを開く」のではなく「ファイルをダウンロードさせる」ためのHTML属性です。
通常、以下のようなリンクはクリックするとファイルがブラウザ上で表示されます。
<a href="./pdf/sample.pdf">クリックで表示</a>
この場合、PDFであればブラウザ内で開き、画像ならそのまま表示されます。
一方で、download
属性を付与すると動作が変わり、リンク先のファイルを直接ダウンロードできるようになります。
<a href="./pdf/sample.pdf" download="manual.pdf">クリックでダウンロード</a>
上記のコードでは、ファイルをクリックすると「manual.pdf」という名前で保存されます。
つまりaタグのdownload属性
を使えば、
- ユーザーに「保存」させたいファイルを直接ダウンロード可能
- ダウンロード時のファイル名を任意で指定できる
という便利な仕組みを簡単に実装できます。
download属性の基本的な書き方(サンプルコード付き)
download
属性は、aタグ
の中に追加するだけで使えます。
基本の書き方は以下です。
<a href="ファイルのパス" download="任意のファイル名">リンクのテキスト</a>
- href属性 … ダウンロードさせたいファイルのパスを指定(相対パスでも絶対パスでもOK)
- download属性 … ダウンロード時のファイル名を指定(空にすると元のファイル名が使われる)
サンプル1:基本的な使い方
<a href="./pdf/sample.pdf" download="sample.pdf">PDFをダウンロード</a>
クリックすると「sample.pdf」という名前で保存されます。
サンプル2:ダウンロード時に別名で保存
<a href="./pdf/sample.pdf" download="manual.pdf">マニュアルをダウンロード</a>
元のファイル名はsample.pdf
ですが、保存時は「manual.pdf」になります。
サンプル3:download属性を空にした場合
<a href="./pdf/sample.pdf" download>PDFを保存</a>
この場合、ダウンロード時のファイル名は元のファイル名(sample.pdf)がそのまま使われます。
download
属性を指定しない場合 → ブラウザでファイルが「表示」されるdownload
属性を指定した場合 → ファイルが「保存」される
download属性を使うときの注意点
aタグ
のdownload
属性はとても便利ですが、いくつか制限や注意点があります。
実装前に知っておくことで「思った通りに動かない」トラブルを防げます。
同一ドメインのファイルしかダウンロードできない
download
属性が有効になるのは同じドメイン上のファイルだけです。- 外部サイトのファイルをリンクしても、強制的にダウンロードはできず、通常のリンクとして動作します。
<!-- OK:同一サイトのファイル -->
<a href="/pdf/sample.pdf" download="guide.pdf">ダウンロード</a>
<!-- NG:外部サイトのファイル(download効かない可能性大) -->
<a href="https://example.com/sample.pdf" download="guide.pdf">ダウンロード</a>
一部のブラウザでは未対応
download
属性はほとんどの主要ブラウザでサポートされていますが、IEや古いバージョンのブラウザでは対応していません。- 未対応ブラウザでは「ダウンロード」ではなく、ファイルがそのまま開いてしまう挙動になります。
ブラウザ対応状況はCan I use download?で確認できます。
ファイル形式によっては意図通りにならない場合がある
- PDFや画像などの一部ファイルは、ブラウザが標準でプレビュー機能を持っているため、環境によっては自動で開いてしまうことがあります。
- その場合は右クリック → 名前を付けて保存で対応するか、サーバー側の設定(HTTPヘッダーで
Content-Disposition: attachment
を付与)を検討する必要があります。
セキュリティ上の制限がある
download
属性はblob:
やdata:
スキームも利用できますが、JavaScriptと組み合わせるとセキュリティの観点から制限がかかることもあります。- 基本的には自分のサーバーに置いたファイルに対して使うのが安全です。
- 外部ドメインのファイルには使えない
- 古いブラウザ(特にIE)では効かない
- PDFや画像はブラウザが勝手に開くことがある
【まとめ】aタグのdownload属性で簡単にファイル配布リンクが作れる
aタグ
のdownload
属性を使えば、わずか数行のコードでダウンロード用リンクを設置できます。
特別なJavaScriptやサーバー設定が不要なので、初心者でも簡単に実装できるのが魅力です。
ただし、
- 同一ドメイン内のファイルしかダウンロードできない
- 一部ブラウザでは対応していない(特にIE)
- PDFや画像は環境によって自動で開かれることがある
といった注意点もあります。
これらを理解したうえで利用すれば、製品マニュアルのPDF配布や、画像素材のダウンロード提供など、ユーザーにとって便利な仕組みを手軽に導入できます。
ぜひ、自分のサイトに合わせて活用してみてください。
コメント