PHP で画像のダウンロードボタンをつくる。

【PHP】

[php]
$path = ‘画像のパス’;
$fname = ‘ファイル名’;

header(‘Content-Type: application/force-download’);
header(‘Content-Disposition: attachment; filename="’. $fname .’"’);
print file_get_contents( $path );
[/php]

あとは a タグの href に php ファイル名を指定すれば OK。
たとえば、

【HTML】

[html]
<a href="download.php">画像をダウンロード</a>
[/html]

という感じ。

画像のパスを可変にするばあいは、

【PHP】

[php]
× extract($_GET);
○ $path = htmlspecialchars( $_GET[‘path’] );
$fname = ‘ファイル名’;

header(‘Content-Type: application/force-download’);
header(‘Content-Disposition: attachment; filename="’. $fname .’"’);
print file_get_contents( $path );
[/php]

【HTML】

[html]
<a href="download.php?path=画像のパス">画像をダウンロード</a>
[/html]

にすれば OK。

【追記 2014.06.19】
セキュリティのため、ソースを修正しました。