Игорь
Новичок
Отдать файл скриптом over SSL (глючит в IE)
Добрый день.
В своё время был написан скрипт, который делал следующее:
В файловой системе, за пределами web, лежит файл.
Скрипт проверяет возможность отдачи его пользователю, и отдаёт его.
Код, отдающий файл:
Этот скрипт прекрасно работал, до тех пор, пока не пришлось переехать на https протокол.
Вот с этого времени данный браузер (IE) не хочет принимать файл. Сначала браузер выдаёт окошко, как при загрузке файла (запустить, сохранить, отменить), но тотчас следом появляется popup окно с ошибкой: Internet Explorer не удаётся загрузить scriptname.php из domainname.ru Не удаётся открыть этот узел Интернета. Узел недоступен или не найден. Повторите попытку позднее.
Замечена эта ошибка на браузерах IE 6й и 7й версий. Мозила, Сафари, Опера -- принимают файл.
Если тянуть файл просто, из web каталога, проблем не возникает.
Сертификат само собой самодельный, без подписи удостоверяющего центра, но узел добавлен в доверенные.
При переносе скрипта на http всё работает на ура.
Вопрос: что нужно сделать, чтобы получить файл посредством скрипта?
Правильно ли я понимаю, что браузер запрашивает скрипт, скрипт отсылает ему заголовки, и браузеру они по какой-то причине не нравятся? Как эту беду побороть?
Добрый день.
В своё время был написан скрипт, который делал следующее:
В файловой системе, за пределами web, лежит файл.
Скрипт проверяет возможность отдачи его пользователю, и отдаёт его.
Код, отдающий файл:
PHP:
$fd = $row["over_file"]; // абсолютный путь к файлу
$fo = $row["over_file_name"]; // имя файла, которое будет видно пользователю
header("Content-Length: ".filesize($fd));
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".$fo);
header("Content-Transfer-Encoding: binary");
readfile($fd);
Вот с этого времени данный браузер (IE) не хочет принимать файл. Сначала браузер выдаёт окошко, как при загрузке файла (запустить, сохранить, отменить), но тотчас следом появляется popup окно с ошибкой: Internet Explorer не удаётся загрузить scriptname.php из domainname.ru Не удаётся открыть этот узел Интернета. Узел недоступен или не найден. Повторите попытку позднее.
Замечена эта ошибка на браузерах IE 6й и 7й версий. Мозила, Сафари, Опера -- принимают файл.
Если тянуть файл просто, из web каталога, проблем не возникает.
Сертификат само собой самодельный, без подписи удостоверяющего центра, но узел добавлен в доверенные.
При переносе скрипта на http всё работает на ура.
Вопрос: что нужно сделать, чтобы получить файл посредством скрипта?
Правильно ли я понимаю, что браузер запрашивает скрипт, скрипт отсылает ему заголовки, и браузеру они по какой-то причине не нравятся? Как эту беду побороть?