Скрипт скачивания файлов. Проблема с заголовками.

Навигатор
На сайте с 15.07.2006
Offline
156
468

Доброго времени суток, коллеги!

Есть задача - дать юзеру скачать файл, обычно картинку JPEG или GIF, но могут быть и архивы. Допустим файл находит по относительному пути files/dsffsnj.jpg

Надо чтоб он открылся не как картинка в браузере, а браузер предложил бы сохранить на компьютере, причем очень желательно чтоб не с корявым именем dsffsnj.jpg а с другим именем которое я задам, пусть будет foto.jpg

Моя безуспешная попытка выглядит так:

header('HTTP/1.1 200 OK');

header('Content-Type: image/jpeg');
header('Content-Disposition: attachment; filename=files/dsffsnj.jpg');
header('Content-Length: '.$size.'');

Файл предлагает сохранить, но с нулевым размером. Ну и имя новое я не знаю как задать.

Буду благодарен за советы.

Шерегеш (http://gesh.info/) - зимний горнолыжный курорт
Malcolm
На сайте с 02.05.2007
Offline
119
#1

Попробуйте вот так:

function downloadfile($file)

{
if (!is_file($file)) { return; }
header("Content-Type: application/octet-stream");
header("Content-Size: ".filesize($file));
header("Content-Disposition: attachment; filename=\"".basename($file)."\"");
header("Content-Length: ".filesize($file));
header("Content-transfer-encoding: binary");
@readfile($file);
exit;
}
Навигатор
На сайте с 15.07.2006
Offline
156
#2

Malcolm, большое спасибо! Решил обе проблемы сразу.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий