Скачка файла с сервера с подменой имени файла

tim-ua

Новичок
Скачка файла с сервера с подменой имени файла

Мне нужно сделать скачку файла, на сервере файлы лежат с именами 1, 2, 3, итд цифры соответствуют id в базе, мне нужно взять имя файла из базы и подставить файл с ид записи, сейчас делаю так:


PHP:
 header("Content-Description: File Transfer");   header("content-type: binary/octet-stream");   header('content-disposition: attachment; filename='.$fname);   header("Content-Transfer-Encoding: binary");   $len = filesize($file); /* читаем размер*/   header("Content-Length: ".$len); /*выдаем размер */   readfile($file); /* выдаем файл */   exit;
при передаче картинки все ок, если например вердовский файл то он не открывается, пишет каракули. Все облазил предлагают только заменить на header("location:$file"); но тут нельзя подменить имя файла (( плз помогите!
 

LeoKee

Новичок
вердовский - это вордовский?
тогда может content-type 'application/msword'?
 

tim-ua

Новичок
Ну мне не очень подходит так, как я файл запрашиваю как http://sitename/?p=getfile&id=34

-~{}~ 31.10.09 20:07:

Тоже самое с раром:

header("Content-Description: File Transfer");

header('Content-type: application/x-rar-compressed');
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Disposition: attachment; filename=".$fname);
echo readfile($file);
exit;

Винрар пишет ошибку.
 

LeoKee

Новичок
так отдаеш то ты его скриптом! создаеш симлинк (указывающий на твой файл) в отдельной папке, юзеру пишеш - ссылка будет доступна 24 часа, генериш url с путём симлинка и редиректиш юзера на этот симлинк header("location:$symlink_url"); - остальное за тебя сделает апач, пробегаеш rm-ом по папке с симлинками и удаляеш все старше 24 часов.
 

tim-ua

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

LeoKee

Новичок
дык тогда ничего не говори а проверяй.. если линк уже есть, давай юзеру его - если нет - создавай, в чем проблема то? и rm не нужен тада

-~{}~ 31.10.09 20:23:

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