ファイルのダウンロードを自動で開始させる方法

Refresh メタタグを使用して自動ダウンロードさせる方法

ページを表示際にメタタグでダウンロード対象ファイルのURLを指定するものです。

ソフトウェアダウンロードサイト Vector はこの方式です。
(Vector サイト: http://www.vector.co.jp/

メタタグを使用して自動ダウンロード

最も簡単な方法は、「自動でダウンロードしています」と書いたページのヘッダにメタタグを指定する方法です。

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html">
<!– この下の1行がポイント –>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.example.co.jp/download_file.zip">
<TITLE>ダウンロード中です</TITLE>
</HEAD>
<BODY>
<P>
ダウンロード中です…
</P>
<!– ↓うまくいかなかった場合の代替手段 –>
<P>
自動でダウンロードが始まらない場合は
<a href="/download_file.zip">ここ</a>をクリックして下さい。
</P>
</BODY>
</HTML>

ポイント1:メタタグで Refresh + ファイルの指定

<HEAD> タグの中に「<META HTTP-EQUIV="Refresh" …>」でダウンロードファイルを指定しています。

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.example.co.jp/download_file.zip">

「URL=」の後に、ダウンロードファイルのURLを指定します。

「<META HTTP-EQUIV="Refresh" …>」でのページ更新は、通常のHTMLファイルのURLを指定した場合は同じウィンドウに(ページが切り替わって)表示されますが、圧縮ファイルなどを指定した場合は表示されているページはそのままで保存用のダイアログが開く、などの動作になります。

ポイント2:自動ダウンロードできなかった場合の代替手段を提供

「自動でダウンロードが始まらない場合は…」でRefresh の指定が動かなかった時のダウンロード手段を提供します。

<P>
自動でダウンロードが始まらない場合は
<a href="/download_file.zip">ここ</a>をクリックして下さい。
</P>

補足: Refresh メタタグ内の URL 指定

「<META HTTP-EQUIV="Refresh" …>」で指定するURLは(仕様上 ※)「http…」などから始まるURLを指定する必要がありますが、ページ内に書く <a> タグの href 属性は通常のリンクと同じウェブサーバ内のパスで構いません。

※ 「<META HTTP-EQUIV="Refresh" …>」の場合も、一般的なブラウザでは相対パスで指定しても期待通り動作するようです。