$fileName = htmlChars($_GET['file']);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$fileName);
echo file_get_contents('./prices/'.$fileName);
exit;
При обращении к которому должен качаться zip архив, но вместо этого качается файл download.php, который естественно пустой, а IE вообще умудряется выкинуть ошибку:
"Не удалось загрузить download.php, Не удалось открыть этот интернет-узел..."
Спустя 17 минут, 1 секунда (21.09.2012 - 17:59) TranceIT написал(а):
PHP точно подключен?
Что phpinfo(); говорит на этот счет?
Что phpinfo(); говорит на этот счет?
Спустя 13 минут, 9 секунд (21.09.2012 - 18:12) vital написал(а):
$fileName = htmlChars($_GET['file']);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename='".$fileName."'");
readfile('./prices/'.$fileName);
Отрывок кода должен выглядеть как минимум вот так.
А вообще поведение описанное напоминает просто отключенный пхп.
Спустя 23 минуты, 12 секунд (21.09.2012 - 18:35) neadekvat написал(а):
Цитата (vital @ 21.09.2012 - 19:12) |
Отрывок кода должен выглядеть как минимум вот так. |
Собственно, что ему мешает выглядеть так, как он выглядит у автора?
Спустя 1 час, 9 минут, 44 секунды (21.09.2012 - 19:45) snizhok написал(а):
а как проверить включен ли php? Страницы сайта загружаются нормально, все остальное вроде работает, данные из бд подтягиваются без проблем и сам файл, который должен скачиватся, создается, но вот скачать его не получается
Спустя 1 минута, 43 секунды (21.09.2012 - 19:46) twin написал(а):
Вот это
А в $_GET['file'] вообще что находится?
htmlChars($_GET['file']);наводит на мысль о причастности...
А в $_GET['file'] вообще что находится?
Спустя 18 минут, 54 секунды (21.09.2012 - 20:05) snizhok написал(а):
twin ну да учился я немного на Ваших материалах
Проблема решилась, вроде была из-за того, что в названии файла использовалось нижнее подчеркивание
Спасибо всем
Проблема решилась, вроде была из-за того, что в названии файла использовалось нижнее подчеркивание
Спасибо всем
Спустя 19 минут, 37 секунд (21.09.2012 - 20:25) snizhok написал(а):
Немного поспешил, проблема с IE осталась, через браузер я не могу скачать, а через download master получается
Спустя 7 минут, 55 секунд (21.09.2012 - 20:33) vital написал(а):
Цитата (neadekvat @ 21.09.2012 - 17:35) | ||
Собственно, что ему мешает выглядеть так, как он выглядит у автора? |
Я добавил 2 вещи.
1. Название файла в кавычках.
Это согласно RFC уж не помню какому, гуглите сами.
Без кавычек имя файла будет показано не правильно если в нем есть пробелы как минимум.
А пользователи обычно хотят привычные им имена файлов при скачивании, с русскими буквами и пробелами. Пользователи они такие, да.
2. echo file_get_contents() - не более чем костыль для readfile().
Вторая функция нужна именно для такой ситуации - когда надо файл напрямую вывести.
Мне кажется глупо не использовать правильные средства?
К тому же, я думаю что вариант с readfile() потратит меньше памяти, поскольку вариант тса сначала загрузит весь файл в память, а только потом выведет, когда readfile() тупо по ходу чтения сразу отправляет в stdout.
Хотя, конечно, учитывая, что говнокодить на пхп общепринятая практика этим всем можно пренебречь.
Спустя 2 часа, 16 минут (21.09.2012 - 22:49) neadekvat написал(а):
vital, так, быть может, такие детали стоило объяснить новичку?