GWT: Почему Chrome & IE не скачивает файл, как Firefox? - PullRequest
6 голосов
/ 28 января 2011

У меня есть несколько двоичных файлов в папке веб-приложения Tomcat, которые я хочу, чтобы пользователь загрузил.

У меня есть следующий код: Window.open(GWT.getHostPageBaseURL()+result, "_blank", "");

Я проверил путь к GWT.logправильно - он действительно указывает на папку с определенным файлом.

Firefox: Загружает каждый файл должным образом (либо открывает image / xml на новой вкладке, либо предлагает диалог сохранения)

Chrome: Кажется, загружается только .zip из того, что я пробовал.Другие игнорируются, ничего не происходит.

IE8: Открывает изображение / XML в новом окне IE.Другие игнорируются (например, ZIP мигает в новом окне, но не отображает диалоговое окно сохранения)

Что я делаю не так?Спасибо

Ответы [ 5 ]

4 голосов
/ 28 января 2011

Я бы предложил использовать инструмент, подобный Fiddler , чтобы диагностировать эту проблему путем более подробного изучения HTTP-запросов и ответов.

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

2 голосов
/ 10 марта 2011

Согласно это обсуждение проблемы GWT-group с chrome может заключаться в том, что она блокирует всплывающие окна, генерируемые javascript (или обратными вызовами в GWT), но позволяет открывать новое окно, если оно является результатом взаимодействия с пользователем (илинажатие кнопки в GWT).

2 голосов
/ 10 марта 2011

Я недавно создал что-то для нашей организации, скорее как кеш-буфер для использования с IE, чем что-либо еще.

Если бы вы могли проверить, что в вашем выходном скрипте есть следующее, по крайней мере где-то: -

response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "max-age=0");
response.setHeader("Content-Disposition", "attachment; filename=\"" + yourfilenamehere + "\"");

Надеюсь, это все равно поможет.Похоже, что расположение контента показывало IE справедливость, но, на мой взгляд, кеширование - это просто практика при извлечении файла с диска.

Удачи с исправлением!

0 голосов
/ 10 марта 2011

На сервере работает SSL?

IE имеет некоторые странные ограничения на загрузку контента, которые он передает сторонним приложениям (zip, pdf, doc, xls и т. Д.) Мы прибегли к использованию комбинации исключающих заголовков без кэширования в наших ответах и ​​сняли флажок «Не сохранять зашифрованные страницы на диск» в IE. У Microsoft сложилось впечатление, что это «фича». Вот некоторые соответствующие ссылки, обсуждающие проблему:

Microsoft KB: 323308 и 815313

переполнение стека: 1262147

Windows Live: Блог

Atlassian: Выпуск Jira

0 голосов
/ 28 января 2011

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

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

...