|
|
|
| Передаю браузеру фйал так:
<?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..
В чем дело? | |
|
|
|
|
|
|
|
для: kukuikar
(08.01.2008 в 10:33)
| | попробуй htmlspecialchars($fname);
или неправильная кодировка | |
|
|
|
|
|
|
|
для: RazoR Empire
(08.01.2008 в 10:58)
| | >попробуй htmlspecialchars($fname);
>или неправильная кодировка
Ну каким боком htmlspecialchars относится к application-контенту?!
Вот ведь лишь бы ляпнуть... | |
|
|
|
|
|
|
|
для: 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'));
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.01.2008 в 11:27)
| | сделал как у Вас - не помогло... Кодировка тоже не причем, у меня в названии файла только цифры, тире, пробелы, двоеточия и запятые, все. | |
|
|
|
|
|
|
|
для: kukuikar
(08.01.2008 в 10:33)
| | Разобрался, IE почему то не нравятся двоеточия в именах файлов. Убираю двоеточия и все работает нормально. Всем спасибо. | |
|
|
|
|
|
|
|
для: kukuikar
(08.01.2008 в 14:17)
| | Вы попробуйте сперва на своей локальной машине создать файл с двоеточием в имени.
Они не нравятся не IE | |
|
|
|
|
|
|
|
для: Trianon
(08.01.2008 в 15:16)
| | А.... ну да.... балда, это ж ... все... вспомнил... | |
|
|
|