Укажите имя изображения в генерации изображения Java "на лету" - PullRequest
3 голосов
/ 28 июня 2011

У меня есть некоторый код Java, который генерирует изображение с нуля.

У меня также есть сервлет, который обслуживает изображение по некоторым параметрам (к вашему сведению, это генерация QR-кода).

Я хотел бы указать имя для этого изображения на случай, если кто-нибудь щелкнет правой кнопкой мыши и сохранит его. Браузер в настоящее время принимает относительный URL-адрес как имя (т. Е. Генерирует), и расширение отсутствует.

Есть идеи?

Спасибо, Алексис.

Ответы [ 2 ]

1 голос
/ 28 июня 2011
    resp.setContentType("image/jpg");
    resp.setHeader( "Content-Disposition", "attachment; filename=\"" + your_filename + "\"" );
1 голос
/ 28 июня 2011

Используйте хороший URL для кодирования вашего изображения.
Полагаю, теперь вы делаете что-то вроде

generateServlet?product=27&query=5

, вместо этого сопоставьте его с

images/qr/product27_q5.png

Таким образомбраузер увидит только симпатичный URL и предложит его в качестве имени файла.Это также скрывает вашу реализацию больше.

Просто сопоставьте ваш сервлет с images/qr/* и затем используйте регулярное выражение для извлечения фактических параметров из запрошенного пути.

Вы можете даже генерировать различные типы изображенийв зависимости от предоставленного расширения:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...