Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка файлов через header
 
 автор: devil943   (25.07.2008 в 18:46)   письмо автору
 
 

Вот часть скрипты, отвечающая за скачивания файла. Переменная $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 в 21:52)   письмо автору
 
   для: devil943   (25.07.2008 в 18:46)
 

немного подниму тему, так как вопрос меня сильно волнует.

  Ответить  
 
 автор: Trianon   (25.07.2008 в 22:38)   письмо автору
 
   для: devil943   (25.07.2008 в 18:46)
 

A Accept-Ranges зачем указано?
Из приведенного фрагмента нельзя сделать вывод, что эта опция поддерживается скриптом.
Вернее, логично сделать вывод, что диапазонные запросы не поддерживаются никак.

В атрибутах полей имеет смысл писать короткое имя, без пути.
И брать его в кавычки. Но это так, к слову.

  Ответить  
 
 автор: devil943   (28.07.2008 в 18:01)   письмо автору
 
   для: Trianon   (25.07.2008 в 22:38)
 

Вы думаете кавычки могут быть причиной отказа в IE?

  Ответить  
 
 автор: Trianon   (28.07.2008 в 20:53)   письмо автору
 
   для: devil943   (28.07.2008 в 18:01)
 

Я бы не стал гадать, если есть возможность исправить.

  Ответить  
 
 автор: cheops   (26.07.2008 в 15:19)   письмо автору
 
   для: devil943   (25.07.2008 в 18:46)
 

Приведите конкретные значения переменных $name и $filename.

  Ответить  
 
 автор: devil943   (28.07.2008 в 18:02)   письмо автору
 
   для: cheops   (26.07.2008 в 15:19)
 

ну например gothic1.2.exe и соответственно files/gothic1.2.exe

  Ответить  
 
 автор: AcidTrash   (28.07.2008 в 21:51)   письмо автору
 
   для: devil943   (28.07.2008 в 18:02)
 

>ну например gothic1.2.exe и соответственно files/gothic1.2.exe
Попробуйте так
$filename = basename("files/".$name);  

  Ответить  
 
 автор: devil943   (29.07.2008 в 13:22)   письмо автору
 
   для: AcidTrash   (28.07.2008 в 21:51)
 

А смысл? $filename будет равен $name, насколько я понимаю..

  Ответить  
 
 автор: cheops   (29.07.2008 в 14:44)   письмо автору
 
   для: devil943   (29.07.2008 в 13:22)
 

Суть не в этом, в HTTP-заголовке
"Content-Disposition: attachment; filename=$filename"

у вас должно быть только имя файла, без пути - IE это терпеть не может.

  Ответить  
 
 автор: AcidTrash   (29.07.2008 в 14:51)   письмо автору
 
   для: devil943   (29.07.2008 в 13:22)
 

Смысл большой. В переменной $filename в заголовке, Вам нужно только имя файла, а не вся дребедень слева(путь до него).

UPD Не заметил, ответ Cheops`a .

  Ответить  
 
 автор: Yuriev   (29.07.2008 в 14:37)   письмо автору
 
   для: 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;

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования