スクリプトメモ » HTML/CSS
20070221
保存ダイアログ

リンクをクリックするとダウンロード、保存ダイアログを出す方法です。

通常はCGIなどを使ってMIME typeに"application/octet-stream"を出力したり、image.zipなど圧縮したり、または別の拡張子をつけて、ユーザーに変更してもらうなどの処理を行いますが、.htaccessとRewriteRuleで行うことが出来ます。

<img src="mypicture.jpg" width="320" heigh="240" alt="写真"><a href="mypicture.jpg?download">ダウンロード</a>

リンク先は表示している画像のファイル名と同じですが、?downloadという文字が追加されています。これをキーワードにして、保存ダイアログを出すようにMIME typeを変更します。

RewriteEngine on
RewriteCond %{QUERY_STRING} ^download
RewriteRule ^(.+)$ - [T=application/octet-stream]

mypicture保存ダイアログサンプル

ただしIEはMIME typeではなくIEで設定している拡張子で判断し、表示しているようです。
Operaはapplication/octet-streamでは表示されてしまいますが、application/zipとすると保存ダイアログが表示されるようになります。
ZIPとして保存ダイアログサンプル(ただしファイルの内容はJPEGです)


Wicker Wings