私のウェブサイトでユーザーのアバターに使用されている画像がいくつかあります。たとえば、http://drksde.tk/images/avatar-Luxie.jpeg 誰かがアバター画像をダウンロードできるようにするリンクを追加したいリンクをクリックすると、[名前を付けて保存]ダイアログが表示されます。
問題は、画像が正しくダウンロードされないことですが、ダイアログが表示されます。アバターをダウンロードするためのリンクとコードは次のとおりです。
<?php
$username = $_GET['username'];
$size = $_GET['size'];
$ext = $_GET['ext'];
$border = $_GET['border'];
$basename = basename($_SERVER['REQUEST_URI']);
if(!isset($size)) { $size = 'small'; }
if(!isset($ext)) { $ext = 'jpeg'; }
if(!isset($border)) { $border = 'true'; }
$file = 'avatar-'.$size.'-'.$username.'.'.$ext;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$basename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
#header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
?>