Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Content-Disposition:attachment; filename - Не работает в новом окне IE6 / 14 сообщений из 14, страница 1 из 1
08.05.2013, 14:36:55
    #38251837
Шаров Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
Есть контроллер, который отдаёт файл клиенту в броузер когда кликаешь по ссылке:
http://static/bankservices2-speda/file_open.do?id=191661

С таким телом

Cache-Control:no-cache, no-store
Content-Disposition:attachment; filename="191382_191661_service_task.xls"
Content-Length:30208
Content-Type:application/vnd.ms-excel

Как видно у клиента должен сохраниться файл "filename" из Content-Disposition.

Натолкнулся на проблему на ровном месте.

В IE6 ссылка оформлена как
<a target='_blank' href='file_open.do?id=191661' > ... </a>
хотя пробовал и так
<a target='_blank' href='http://static/bankservices2-speda/file_open.do?id=191661' > ... </a>

На клик, открывается окно "Открыть", "Сохранить", где имя файла = "filename" из Content-Disposition.
Работает правильно !

Хочу прислать ссылку в почтовом сообщении, где, приходится указывать ссылку с _полным_ путём:
http://static/bankservices2-speda/file_open.do?id=191661

На клик, открывается окно "Открыть", "Сохранить", где имя файла НЕ РАВНО "filename" из Content-Disposition, а указана иногда вся ссылка, иногда обрезанная, но всегда не то, что нужно :( ("filename"). При этом сохранение и открытие обламывается т.к. IE6 не может создать временный файл с именем в котором есть "?".

Пробовал эту же абсолютную ссылку открывать в новом окне IE6 - та же самая ошибка.
...
Рейтинг: 0 / 0
08.05.2013, 14:39:47
    #38251841
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
Переделайте на friendly URL
http://static/bankservices2-speda/file_open/191382_191661_service_task.xls
Это старая проблема IE.
При чем тут Java не совсем понятно.
...
Рейтинг: 0 / 0
08.05.2013, 14:52:52
    #38251866
Шаров Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
BlazkowiczПри чем тут Java не совсем понятно.

Контроллер на JAVA :).
Здесь люди гораздо профессиональнее. В HTML до сих пор нет никаких движений на мой вопрос.

BlazkowiczПеределайте на friendly URL
Это старая проблема IE.


Спасибо, понял.
...
Рейтинг: 0 / 0
08.05.2013, 15:52:43
    #38251987
Шаров Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
BlazkowiczПеределайте на friendly URL

Переделал.

Теперь
http://static/bankservices2-speda/file_open/191661.do

И при скачивании в IE6 в новой странице имя файла не filename из, Content-Disponse, но уже 191661.xls, и.... теперь не предлагает "Открыть", "Сохранить", а сразу срётся с "правильным" именем :(.


Может потому, что
Content-Type:application/vnd.ms-excel
а, расширение не ".xls", а ".do" ?
...
Рейтинг: 0 / 0
08.05.2013, 15:55:49
    #38251996
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
Шаров Сергейа сразу срётся с "правильным" именем :(.
Это как?

Шаров Сергейа, расширение не ".xls", а ".do" ?
Скорее всего.
...
Рейтинг: 0 / 0
08.05.2013, 16:08:54
    #38252022
Шаров Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
BlazkowiczШаров Сергейа сразу срётся с "правильным" именем :(.
Это как?


Приложил сранки.

BlazkowiczШаров Сергейа, расширение не ".xls", а ".do" ?
Скорее всего.

У меня SpringSecurity и servlet-mapping\url-pattern смотрят на *.do.
Менять на xls, а потом появится pdf ... как-то совсем не красиво.

И хотья этого не буду делать но спрошу, т.к. плаваю в этом вопросе, а можно ли в одном web.inf-е указать несколько
servlet-mapping\url-pattern ?
...
Рейтинг: 0 / 0
08.05.2013, 16:11:28
    #38252026
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
У меня без проблем открываются эксель файлы с типом "application/octet-stream".
А в принципе, не мешало бы показать код, как эта ссылка записывается в почтовое сообщение, что реально приходит, и что за клиент. Или проблема вылезает и без почтового клиента - просто при вводе адреса в браузер?
...
Рейтинг: 0 / 0
08.05.2013, 16:19:57
    #38252042
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
ivanraУ меня без проблем открываются эксель файлы с типом "application/octet-stream".
А в принципе, не мешало бы показать код, как эта ссылка записывается в почтовое сообщение, что реально приходит, и что за клиент. Или проблема вылезает и без почтового клиента - просто при вводе адреса в браузер?
IE6? :)
...
Рейтинг: 0 / 0
08.05.2013, 16:23:32
    #38252049
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
На счет обосратушек, похоже что это что-то на сервере не доделано. IE не смог вообще скачать файл. Дело не в имени и не в открытии его офисом.

Шаров СергейУ меня SpringSecurity

Стоило взять Spring MVC, наверное, для Web задач. А SpringSecurity оставить для безопасности?

Шаров Сергейи servlet-mapping\url-pattern смотрят на *.do.
Менять на xls, а потом появится pdf ... как-то совсем не красиво.
.do как бы намекает на какие-то действия сервера. Замапте для файлов отдельный путь
/file_open/*
И странно, если вы используете какой-то фреймверк, а URL маппите в web.xml. Стоит мапить средствами фреймверка.
...
Рейтинг: 0 / 0
08.05.2013, 16:35:11
    #38252074
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
Шаров Сергей,

Я смотрю у тебя в заголовке:
Cache-Control:no-cache, no-store
я почему-то делал наоборот(не помню почему, но проблема была), так
Cache-Control:max-age=120
Expires : new Date+2 min
...
Рейтинг: 0 / 0
08.05.2013, 17:10:13
    #38252124
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
BlazkowiczivanraУ меня без проблем открываются эксель файлы с типом "application/octet-stream".
А в принципе, не мешало бы показать код, как эта ссылка записывается в почтовое сообщение, что реально приходит, и что за клиент. Или проблема вылезает и без почтового клиента - просто при вводе адреса в браузер?IE6? :)
А что тут смешного. Почтовый клиент != web клиент. Проблема может быть:
- в неправильной интерпретации ссылки почтовым клиентом
- в неправильно сформированной ссылке в почтовом сообщении
Поэтому и вопрос, как готовится почтовое сообщение
...
Рейтинг: 0 / 0
08.05.2013, 17:54:05
    #38252183
Шаров Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
0FDШаров Сергей,

Я смотрю у тебя в заголовке:
Cache-Control:no-cache, no-store
я почему-то делал наоборот(не помню почему, но проблема была), так
Cache-Control:max-age=120
Expires : new Date+2 min

Если честно, Cache-Control ставится автоматом как HttpServletResponce.

Поставил руками, как ты посоветовал и свершилось чудо,
1) файл стал нормально скачиваться :(.
2) имя файла стало хорошим из Content-Desponse\filename!

Из всего вышесказанного делаю вывод:

IE6 все кеширует во временном каталоге, а потом выводит полученное из файла клиенту. Инструкция Cache-Control:no-cache, no-store не позволяла ему сохранять полученные данные во временный файл и поэтому IE6 срался, когда клиенту нужно было показывать результат. Ну а вывести поток клиенту мы не умеем :(.

Почему показывал, если ссылку ткнуть в приложении, я не могу понять.
...
Рейтинг: 0 / 0
08.05.2013, 18:17:47
    #38252226
Шаров Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
BlazkowiczШаров СергейУ меня SpringSecurity

Стоило взять Spring MVC, наверное, для Web задач. А SpringSecurity оставить для безопасности?



Ну да,
SpringSecurity - для безопасности
SpringMVC - для WEB

Оба в одном приложении.

Blazkowicz
Шаров Сергейи servlet-mapping\url-pattern смотрят на *.do.
Менять на xls, а потом появится pdf ... как-то совсем не красиво.

И странно, если вы используете какой-то фреймверк, а URL маппите в web.xml. Стоит мапить средствами фреймверка.

Тут не понятно.
Я не отдельные URL маплю в web.xml, а говорю томкат, кание URL-ы (*.do) обрабатываются внутри SpringMVC.
Если в web.xml убрать servlet-mapping\url-pattern, то так tomcat вообще ничего не найдёт.

А ты как телаешь, наверное servlet-mapping\url-pattern\* ?
...
Рейтинг: 0 / 0
08.05.2013, 19:44:00
    #38252320
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Content-Disposition:attachment; filename - Не работает в новом окне IE6
Шаров Сергей,

Я же написал выше. Вместо *.do можно мапить /services/*, например.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Content-Disposition:attachment; filename - Не работает в новом окне IE6 / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]