powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение изображения из сервлета
6 сообщений из 6, страница 1 из 1
Получение изображения из сервлета
    #32439423
EcoloRa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытался получить изображение из сервлета
последний вариант метода doPost:
Появились setContentLength() и close(), но получение рисунка все-равно не работает. А вот запись байтов в файл (выделено жирным) работает!!! Получается нормальный jpg рисунок.

Код:
авторpublic void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {

performTask(request, response);
//response.setContentType("text/html;charset=Windows-1251");
response.setContentType("image/jpeg");
//response.setContentType("application/download");
//прослеживанию сеанс
HttpSession hs = request.getSession(true);
String s = (String) hs.getValue("correct");
if ((s != null) && (s.equals(ValueCorrectSeanse))) {
try
{
Class.forName(MySQLDriver).newInstance();

Properties connInfo = new Properties();
connInfo.put("user",MySQLUser);
connInfo.put("password",MySQLPassword);
connInfo.put("useUnicode","true");
connInfo.put("characterEncoding",MySQLcharacterEncoding);

//Conn = DriverManager.getConnection(MySQLUrl,MySQLUser,MySQLPassword);
Conn = DriverManager.getConnection(MySQLUrl,connInfo);

Stmt = Conn.createStatement();
//Пытаюсь заюзать базу
Stmt.executeUpdate("USE news");
RS = Stmt.executeQuery("SELECT image FROM News_images where rowid=1");
while (RS.next()) {
com.mysql.jdbc.Blob bl = null;
bl = (com.mysql.jdbc.Blob) RS.getBlob("image");

OutputStream f1 = new FileOutputStream("c:/temp/file111.jpg");
f1.write(bl.getBytes(1,(int) bl.length()));
f1.close();


response.setContentLength((int) bl.length());
//Создать объект класса ObjectOutputStream.
ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());
//запись в поток
out.write(bl.getBytes(1,(int) bl.length()));
//Очистить поток, чтобы быть уверенным в том, что всё содержимое послано клиенту.
out.flush();
out.close();
}
}
catch (Exception E)
{
//pw.println(MesageError);
//pw.println(E);
}

//конец ифа ниже
}
else {
//pw.println("<H2>"+AcessDenied+"<H2>");
}
}

В чем же проблема???
...
Рейтинг: 0 / 0
Получение изображения из сервлета
    #32439472
Грасоff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.: six millions ways to die :.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
String mimeType =  "image/jpeg" ;
String name =  "sample.jpg" ;
int length = {your length};
response.setContentType(mimeType);
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader( "Content-Disposition" ,  "filename="  + name);
response.setHeader( "Content-Name" , name);
response.setContentLength(length);
response.setHeader( "Connection" ,  "close" );
OutputStream out = response.getOutputStream();
InputStream in = rs.getBinaryStream( "data" ); // rs as RecordSet
BufferedInputStream bin = new BufferedInputStream(in);
int readed = - 1 ;
while ((readed = bin.read()) != - 1 ) {
  out.write(readed);
}
bin.close();
out.flush();
out.close();
...
Рейтинг: 0 / 0
Получение изображения из сервлета
    #32441316
EcoloRa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Сегодня вечером обязателно попробую...
Если получится, то я твой должник.
...
Рейтинг: 0 / 0
Получение изображения из сервлета
    #32441420
Грасоff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если получится, то я твой должник.

что значит - "если получится"? :) рабочий код...
...
Рейтинг: 0 / 0
Получение изображения из сервлета
    #32442678
EcoloRa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказывается мой код рабочий (за одним исключением), моя ошибка в том, что я вместо OutputStream out = response.getOutputStream()
использую ObjectOutputStream.
Вопрос снят. :0)
Оставь мыло?
Мое real@krw.ru
В следующий раз сюда неизвестно когда зайду.
...
Рейтинг: 0 / 0
Получение изображения из сервлета
    #32442901
Грасоff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оставь мыло?
Мое real@krw.ru

mail: d909 at nm dot ru
icq: 346301751
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение изображения из сервлета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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