tim-ua
31.10.2009 - 20:22
Мне нужно сделать скачку файла, на сервере файлы лежат с именами 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"); но тут нельзя подменить имя файла (( плз помогите!
Спустя 19 минут, 14 секунд (31.10.2009 - 19:41) kirik написал(а):
Ну у .doc файлов миме вроде был "application/msword". Попробуйте исправить.. Или
вот код, только тоже
Content-Type нужно на свой поменять
Спустя 9 минут, 56 секунд (31.10.2009 - 19:51) tim-ua написал(а):
Хедер application/msword тоже не помог:(
Спустя 26 минут, 5 секунд (31.10.2009 - 20:17) tim-ua написал(а):
Тоже самое с раром:
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;
Винрар пишет ошибку.