У меня есть следующий код на Spring Controllerрасширение файла Content-Disposition не работает должным образом на Firefox
@RequestMapping(value = "/download", method = RequestMethod.POST)
public void downloadActive(@RequestParam(value = "type") String offerType, HttpServletResponse response,
HttpSession session) throws Exception {
StringBuilder b = new StringBuilder();.
.
.
response.addHeader("Content-Disposition: ", "attachment; filename=my" + offerType + "Offers.csv");
response.getWriter().write(b.toString());
..
}
Этот код получить выполняется, когда кнопка загрузки из Ext, щелкают. В chrome он непосредственно загружает файл в формате * .csv, и когда пользователь открывает его, он автоматически использует Excel для открытия файла, если он уже установлен, и это правильное поведение, которое я хотел иметь.
Однако, в firefox, он предлагает сохранить как окно с открытыми и сохраненными параметрами. Если я использую open с опцией, он сообщает мне, что filename является filename.csv, но тип - хром htm-файл. Я не упоминал htm нигде в моем коде, и я не знаю, почему он пытается открыть его как htm вместо файла csv. Когда он пытается открыть его, он приносит приложение excel, и содержимое находится в плохом формате.
Есть ли способ избежать этой проблемы на firefox?
Благодаря
Получить HTTP след и показать нам все поля заголовка ответа. –
Сегодня я столкнулся с этой проблемой, и ни один из других предложений в этой теме не работал. В моем случае это был файл XLSX для загрузки. Все браузеры, кроме Firefox, работают очень хорошо. Я также использую Spring MVC, как вам кажется. Я добавил аннотацию 'производит', чтобы включить тип MIME Excel, и теперь он исправляет проблему в Firefox. В моем случае это означало аннотацию контроллера: '@RequestMapping (method = RequestMethod.POST, производит =" application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ")' – jwj