Не удается загрузить файл в IE7, но в Firefox, Chrome и т. д. проблем нет?

StackOverflow https://stackoverflow.com/questions/117372

Вопрос

У меня есть сценарий, который получает зашифрованный URL-адрес и на его основе генерирует загрузку. Наиболее критичная часть сценария такова:

$MimeType = new MimeType();
$mimetype = $MimeType->getType($filename);
$basename = basename($filename);
header("Content-type: $mimetype");
header("Content-Disposition: attachment; filename=\"$basename\"");
header('Content-Length: '. filesize($filename));
if ( @readfile($filename)===false ) {
  header("HTTP/1.0 500 Internal Server Error");
  loadErrorPage('500');
}

Загрузка работает отлично в любом браузере, кроме IE, я видел проблемы, связанные с заголовками без кэша, но я ничего подобного не отправляю, они говорят о символах utf-8, но их нет. utf-8 characters(и в $filename нет символов utf-8).

Это было полезно?

Решение

Этот сайт есть проблема, похожая на вашу, в IE6.Обобщить:

session_start() по умолчанию отправляет заголовок управления кэшем, включая «no-store».Internet Explorer берет это слишком буквально, но не имеет соответствующей обработки ошибок для дела, и в результате загадочно взрывается, когда вы пытаетесь сохранить выходную страницу для диска.

Перед SESSION_START () добавьте "SESSION_CACHE_LIMITER ('none');" или посмотрите эту функцию и настройку ограничителя в зависимости от необходимости (вероятно, «частная» ближе к отмечу).

Я понимаю, что опубликованный вами фрагмент кода не включает вызов session_start();, но я решил поделиться этим возможным решением на случай, если вы его захотите, но просто не показал нам.

Другие советы

Я решил это, отправив заголовки

header('Pragma: public');
header('Cache-Control: max-age=0');

Я не знал, что session_start() отправляет заголовки самостоятельно.

Я нашел ответ в разделе комментариев: Ошибка:Internet Explorer не может загрузить имя файла с веб-сервера

Использовать это

В браузере IE7 Перейдите в интернет-опцию-> Security ---> Пользовательский уровень ---> Загрузки, затем включенная автоматическая подсказка для загрузки файлов.

это решит проблему.

надеюсь, это поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top