|
|
|
| Вот часть скрипты, отвечающая за скачивания файла. Переменная $name берется из БД.
mime_content_type() работает 100%.
$filename = "files/".$name;
$mime = mime_content_type($filename);
header ("Content-Type: $mime");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($filename));
header ("Content-Disposition: attachment; filename=$filename");
readfile($filename);
|
В фоксе и опере все нормально скачивается, ie пытается скачать файл скрипта, но после долгого раздумия выдает, что файл load,php недоступен.
В строке
header ("Content-Disposition: attachment; filename=$filename");
| пробовал вместо $filename писать $name, результат абсолютно одинаковый.
Что не так? | |
|
|
|
|
|
|
|
для: devil943
(25.07.2008 в 18:46)
| | немного подниму тему, так как вопрос меня сильно волнует. | |
|
|
|
|
|
|
|
для: devil943
(25.07.2008 в 18:46)
| | A Accept-Ranges зачем указано?
Из приведенного фрагмента нельзя сделать вывод, что эта опция поддерживается скриптом.
Вернее, логично сделать вывод, что диапазонные запросы не поддерживаются никак.
В атрибутах полей имеет смысл писать короткое имя, без пути.
И брать его в кавычки. Но это так, к слову. | |
|
|
|
|
|
|
|
для: Trianon
(25.07.2008 в 22:38)
| | Вы думаете кавычки могут быть причиной отказа в IE? | |
|
|
|
|
|
|
|
для: devil943
(28.07.2008 в 18:01)
| | Я бы не стал гадать, если есть возможность исправить. | |
|
|
|
|
|
|
|
для: devil943
(25.07.2008 в 18:46)
| | Приведите конкретные значения переменных $name и $filename. | |
|
|
|
|
|
|
|
для: cheops
(26.07.2008 в 15:19)
| | ну например gothic1.2.exe и соответственно files/gothic1.2.exe | |
|
|
|
|
|
|
|
для: devil943
(28.07.2008 в 18:02)
| | >ну например gothic1.2.exe и соответственно files/gothic1.2.exe
Попробуйте так
$filename = basename("files/".$name);
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(28.07.2008 в 21:51)
| | А смысл? $filename будет равен $name, насколько я понимаю.. | |
|
|
|
|
|
|
|
для: devil943
(29.07.2008 в 13:22)
| | Суть не в этом, в HTTP-заголовке
"Content-Disposition: attachment; filename=$filename"
|
у вас должно быть только имя файла, без пути - IE это терпеть не может. | |
|
|
|
|
|
|
|
для: devil943
(29.07.2008 в 13:22)
| | Смысл большой. В переменной $filename в заголовке, Вам нужно только имя файла, а не вся дребедень слева(путь до него).
UPD Не заметил, ответ Cheops`a . | |
|
|
|
|
|
|
|
для: devil943
(25.07.2008 в 18:46)
| |
$filename = 'aaaaaa.aaa';
$path = 'papka_s_failami/'.$filename;
$type = 'тут тип файла';
header("Content-Type: \"$type\"");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Disposition: attachment; filename= \"$filename\"");
fpassthru(fopen($path,"rb"));
exit;
|
| |
|
|
|