Jasper сообщает о проблеме с именем PDF

Я создаю отчет в формате pdf весной mvc 3, используя динамический отчет jasper. Я устанавливаю эти заголовки перед записью отчета в поток.

response.setHeader("Content-Disposition", "inline; filename=" + fileName);
response.setContentType("application/pdf");

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

response.setHeader("Content-Disposition", "inline; filename=" + fileName);

В чем может быть проблема.


person Muhammad Imran Tariq    schedule 28.09.2011    source источник
comment
У меня были проблемы, когда имя файла содержало такие символы, как / или \ и, возможно, другие. Как выглядит ваше имя файла?   -  person Tim Büthe    schedule 28.09.2011


Ответы (1)


С attachment файл будет правильно обслуживаться с указанным именем. Когда inline, браузеры, кажется, игнорируют filename и обычно дают часть имени сервлета URL-адреса в качестве имени по умолчанию при сохранении встроенного содержимого.

Вы можете попробовать сопоставить этот URL-адрес с подходящим именем файла, если это подходит. Например, с <servlet-mapping>. Я не знаком с Spring MVC, так что, возможно, есть эквивалент.

Вот вопрос, связанный с SO: Безопасно загрузить файл внутри браузера с правильным именем файла

Вы также можете найти эту ссылку полезной: Атрибут имени файла для Inline Content-Disposition бессмысленно?

person Xavi López    schedule 28.09.2011
comment
Да так же и здесь. Как избежать этого случая? - person Muhammad Imran Tariq; 28.09.2011
comment
@imrantariq Я обновил ответ возможным обходным путем. - person Xavi López; 28.09.2011