Как использовать файл изображения, расположенный на локальном диске, для печати его на странице JSP или страницы сервлета? - PullRequest
3 голосов
/ 04 января 2010

Я хочу отобразить изображение, расположенное на моем локальном диске. Я использую сервер приложений Sun java 8. Например, если я динамически генерирую файл abc.jpg и сохраняю его в c: \ abc.jpg, то как я могу использовать его в jsp или сервлетах? Как отобразить его на страницах jsp или servlet? Я знаю, что указание пути c: \ abc.jpg в кодировке для отображения изображения не сработает, потому что его нет на веб-сервере ..

Ответы [ 2 ]

4 голосов
/ 04 января 2010

В основном просто создайте Servlet, который получает InputStream его с помощью FileInputStream и записывает его в OutputStream из HttpServletResponse вместе с правильным набором заголовков ответа, по крайней мере с content-type. Наконец, вызовите этот сервлет в атрибуте src элемента <img> вместе с идентификатором файла в качестве параметра запроса или pathinfo. E.g.:

File file = new File("c:/abc.jpg");

response.setContentType(getServletContext().getMimeType(file.getName()));
response.setHeader("Content-Length", String.valueOf(file.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\"");

BufferedInputStream input = null;
BufferedOutputStream output = null;

try {
    input = new BufferedInputStream(new FileInputStream(file));
    output = new BufferedOutputStream(response.getOutputStream());

    byte[] buffer = new byte[10240];
    int length;
    while ((length = input.read(buffer)) > 0) {
        output.write(buffer, 0, length);
    }
} finally {
    if (output != null) try { output.close(); } catch (IOException logOrIgnore) {}
    if (input != null) try { input.close(); } catch (IOException logOrIgnore) {}
}

Здесь вы можете найти полный базовый пример: http://balusc.blogspot.com/2007/04/imageservlet.html

2 голосов
/ 04 января 2010

Может быть, все неправильно понимают вопрос.

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

После этого вы можете использовать URL-адреса в тегах <img> для ссылки на их местоположение на сервере.

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