Изменить имя отдаваемого файла

RF
На сайте с 26.04.2009
Offline
107
1093

Есть небольшая подборка архивов для скачивания. Файлы хранятся с именами по id от 1 до 1000, к примеру, "189.rar"

Скачивание происходит через скрипт:

$sql = 'UPDATE fics SET arhive_count = (arhive_count+1) WHERE fic_id = '.$id;

@mysql_get($sql,'Инкремент кол-ва скачиваний архива');
// Отправка заголовка на скачивание архива
Header('location:arhives/'.$id.'.rar');

Как сделать чтобы пользователь получал файл с осмысленным именем? Имя будет браться из базы.

HraKK
На сайте с 02.03.2009
Offline
128
#1

HEADER или NGINX+X_ACCEL_REDIRECT

второй вариант в разы предпочтительней

я гарант (/ru/forum/493343) уже не оказываю данные услуги, извините.
[Удален]
#2


<?php
header("Content-Disposition: attachment; filename=".$filename);
header("Content-Type: application/x-force-download; name=\"".$filename."\"");
RF
На сайте с 26.04.2009
Offline
107
#3

nikitian, так я не показываю пользователю путь к файлу, но имя файла остается прежним...

Возможно, я сам туплю, тогда подскажите, пожалуйста, подробнее.

Мне надо:

$file = "path/111.rar";

$new_file_name = "trydno_bit_bogom.rar";

Как отдать пользователю файл, который храниться как $file с именем $new_file_name ?

[Удален]
#4

ReFeRy_pf, вы тупите, в методе Nikitian в $filename будет именно то имя, которые увидит юзер в браузере.

а вот чтобы отдать оригинальный, нужно выплевывать его в поток. Это не очень хорошо ибо докачки нет и нагрузка на сервер большая.

Чтобы не грузить сервак больше чем надо нужно для этих целей использовать mod_proxy или RewriteMap

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