Проблемы с автоматической загрузкой и предупреждением безопасности IE - PullRequest
1 голос
/ 19 ноября 2010

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

У меня есть скрипт 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 ]

0 голосов
/ 19 ноября 2010

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

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

0 голосов
/ 01 декабря 2010

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

0 голосов
/ 19 ноября 2010

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

...