Проблемы с автоматической загрузкой и предупреждением безопасности IE

У меня следующая ситуация (упрощенно):

У меня есть скрипт file.php? File=foo.pdf, который доставляет файлы вне корня документа (у него нет html, это всего лишь push-скрипт загрузки). Некоторые файлы защищены скриптом - в этом случае пользователь перенаправляется на login.php. При успешном входе в систему переменная сеанса устанавливается вместе с файлом, который пользователь хочет загрузить. Пользователь перенаправляется на home.php, где я создаю iframe с исходным файлом загрузки file.php? File=foo.pdf. Когда скрипт file.php начинает загружать файл, он сбрасывает переменную сеанса.

Это работает в Firefox, но в IE это дает мне предупреждение безопасности, и загрузка блокируется. Если я нажму на панель и разрешу загрузку, IE перезагрузит страницу. Но так как сеанс уже был сброшен, iframe не генерируется, и поэтому файл не загружается "снова".

IE, кажется, действительно запускает первую загрузку, но прерывает ее при получении заголовков. Так что, думаю, у меня нет шансов сказать, была ли загрузка прервана браузером.

У кого-нибудь есть решение этого? (Я не хочу кнопку загрузки).

3 ответа

Решение

После сумасшествия с этим (спасибо за ответы, но ни один из них не решил проблему - IE устанавливает Cookies на запрос на загрузку, но впоследствии блокирует загрузку), я склонен думать, что единственный способ справиться с этим - это предложить страница загрузки, на которой пользователь может активно щелкнуть ссылку для загрузки (или, по крайней мере, какое-то наложение для загрузки).

Я могу ошибаться, но Вы пытались сбросить переменную сеанса после отправки файла в iframe? В этом случае возможно, что когда проверка безопасности IE пройдет, переменная загрузки все еще будет существовать для следующего запроса

Вы "целитесь" на iframe в своей ссылке для скачивания?

Почему вы не нацелены ="родитель"? без html и измененного заголовка MIME (я полагаю, поток октетов или принудительное скачивание) ваша страница не будет переопределена, и ваша загрузка будет успешной.

Другие вопросы по тегам