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

Форум PHP

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

 

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

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

тема: Неправильное имя файла в IE при передачи
 
 автор: kukuikar   (08.01.2008 в 10:33)   письмо автору
 
 

Передаю браузеру фйал так:

<?php
    header
("Cache-control: private");
    
header("Content-type: application/force-download");
    
header("Content-transfer-encoding: binary");
    
header("Content-disposition: attachment; filename=\"$fname\"");
    
header("Content-Length: ".filesize($path.$fname));
    echo 
file_get_contents($path.$fname);

?>

FF принимает имя файла правильно, а IE абракабру типа CABA07J5..
В чем дело?

   
 
 автор: RazoR Empire   (08.01.2008 в 10:58)   письмо автору
 
   для: kukuikar   (08.01.2008 в 10:33)
 

попробуй htmlspecialchars($fname);
или неправильная кодировка

   
 
 автор: Trianon   (08.01.2008 в 11:29)   письмо автору
 
   для: RazoR Empire   (08.01.2008 в 10:58)
 

>попробуй htmlspecialchars($fname);
>или неправильная кодировка

Ну каким боком htmlspecialchars относится к application-контенту?!
Вот ведь лишь бы ляпнуть...

   
 
 автор: Trianon   (08.01.2008 в 11:27)   письмо автору
 
   для: kukuikar   (08.01.2008 в 10:33)
 

Имя объекта имеет смысл указывать не только в content-disposition, но и в content-type.
Заглатывать отдаваемый файл в память echo file_get_contents - дикость. Применяйте fpassthru.
Откуда Вы взяли поле Content-transfer-encoding - непонятно. В HTTP-протоколе такого поля нет.


<?php
    header
("Content-type: application/force-download; name=\"$fname\"");
    
header("Content-disposition: attachment; filename=\"$fname\"");
    
header("Content-Length: ".filesize($path.$fname));
    
fpassthru(fopen($path.$fname'rb'));
?> 

   
 
 автор: kukuikar   (08.01.2008 в 13:15)   письмо автору
 
   для: Trianon   (08.01.2008 в 11:27)
 

сделал как у Вас - не помогло... Кодировка тоже не причем, у меня в названии файла только цифры, тире, пробелы, двоеточия и запятые, все.

   
 
 автор: kukuikar   (08.01.2008 в 14:17)   письмо автору
 
   для: kukuikar   (08.01.2008 в 10:33)
 

Разобрался, IE почему то не нравятся двоеточия в именах файлов. Убираю двоеточия и все работает нормально. Всем спасибо.

   
 
 автор: Trianon   (08.01.2008 в 15:16)   письмо автору
 
   для: kukuikar   (08.01.2008 в 14:17)
 

Вы попробуйте сперва на своей локальной машине создать файл с двоеточием в имени.
Они не нравятся не IE

   
 
 автор: kukuikar   (08.01.2008 в 16:53)   письмо автору
 
   для: Trianon   (08.01.2008 в 15:16)
 

А.... ну да.... балда, это ж ... все... вспомнил...

   
Rambler's Top100
вверх

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