Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение картинки в Оракл 
:(
    Опции темы
mastanik
Дата 23.6.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



Опишите, пожплуйста, как вообще реализовать такую фичу?
нужно сделать так, чтобы пользователь на ЖСП страничке выбирал со своего диска картинку, а потом эта картинка сохранилась в БД.

Спасибо ин адванс 
PM MAIL   Вверх
d_k
Дата 23.6.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 20.7.2004

Репутация: 1
Всего: 1



Есть тип данных BLOB - вам в эту степь smile 
PM MAIL   Вверх
mastanik
Дата 23.6.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



это уже смешно становится...8)
у кого ни спрашиваю, все говорят одно и тоже8) 
PM MAIL   Вверх
batigoal
Дата 23.6.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(mastanik @  23.6.2006,  14:10 Найти цитируемый пост)
это уже смешно становится...8)
у кого ни спрашиваю, все говорят одно и тоже8)  

О чем это говорит? О том, что ответ правильный smile

Или у тебя вызывает вопросы непосредственно аплоад файла с клиента?  

Это сообщение отредактировал(а) Lamer George - 23.6.2006, 13:13


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
d_k
Дата 23.6.2006, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 20.7.2004

Репутация: 1
Всего: 1



mastanik, поиском пользуйся. Столько раз перетиралось, что подробно описывать наскучит любому ;) 
PM MAIL   Вверх
mastanik
Дата 23.6.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



если б ты знал, скока я времени на это убил...8) 
PM MAIL   Вверх
d_k
Дата 23.6.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 20.7.2004

Репутация: 1
Всего: 1



Так вопрос то не поставлен!
Что не получается?
Прочитать стрима с твоей картинкой? Библиотек пруд пруди,  для работы с НТМL формами.

Записать LOB?
Ну что то  типа
Код

    public static void initBlob(BigDecimal uid, String table, String dataColumn) throws SQLException, NamingException {
        Connection con = DBDataSourceCache.getDataSource().getConnection();
        con.setAutoCommit(false);
        Statement stmt = con.createStatement();
        stmt.executeUpdate("UPDATE " + table + " SET " + dataColumn + " = empty_blob() WHERE id = " + uid);
        stmt.close();
        con.close();
    }
    
    public static void saveBlob(BigDecimal uid, long pos, byte[] data, int length, String table, String dataColumn)
        throws SQLException, IOException, NamingException {
        Connection con = DBDataSourceCache.getDataSource().getConnection();
        con.setAutoCommit(false);
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT " + dataColumn + " FROM " + table + " WHERE id = " + uid + " FOR UPDATE");
        
        if (rs.next()) {
            BLOB blob = (BLOB) rs.getObject(dataColumn);
            OutputStream out = blob.getBinaryOutputStream(pos + 1);
            out.write(data, 0, length);
            out.close();
        }


 
PM MAIL   Вверх
mastanik
Дата 23.6.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



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

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class UploadServlet extends HttpServlet
{
    public void service(ServletRequest request,
        ServletResponse response)
        throws IOException
    {
        String contentType = request.getContentType();
        int boundaryIndex = contentType.indexOf("boundary=");

        String boundary = contentType.substring(boundaryIndex+9);
        int boundaryStrLength = boundary.length();

        ServletInputStream servIn = request.getInputStream();

        DataInputStream in = new DataInputStream(servIn);

        String line;

        while ((line = in.readLine()) != null)
        {
              if (line.trim().length() == 0) break;
        }

        ByteArrayOutputStream byteOut = new ByteArrayOutputStream(
            request.getContentLength());

        byte[] buffer = new byte[4096];
        int len;

        while ((len = in.read(buffer)) > 0)
        {
            byteOut.write(buffer, 0, len);
        }

        byte[] outBytes = byteOut.toByteArray();

        FileOutputStream fileOut = new FileOutputStream("/tmp/uploaded_file");

        fileOut.write(outBytes, 0, outBytes.length - boundaryStrLength - 8);
        fileOut.close();

    }
}

 
PM MAIL   Вверх
d_k
Дата 26.6.2006, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 20.7.2004

Репутация: 1
Всего: 1



Глянь сюда. Авось поможет...
Только проще для этого воьспользоваться какой нибудь стандартной библиотекой, типа этой 
PM MAIL   Вверх
mastanik
Дата 26.6.2006, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



спасибо за сцылку, попозжее буду разбираться.
а там есть возможность остальные параметры принимать, если в форме не только файл, но и просто несколько полей ввода? 
PM MAIL   Вверх
d_k
Дата 26.6.2006, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 20.7.2004

Репутация: 1
Всего: 1



В описаке все написано.
В 1-й ссылке нет. Хотя дописать в соответствии с  RFC 1867 недолго. 
PM MAIL   Вверх
mastanik
Дата 27.6.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



похоже я неудачник...8(
не получается...

Код

package servlets;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.FileUploadException;
/*import org.apache.commons.fileupload.FileItem;*/
import org.apache.commons.fileupload.*;
import java.util.*;

public class addtemp extends HttpServlet
{
    PrintWriter out;
    
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws IOException {
        out = response.getWriter();
        out.println("HELLO GET");
    }
    protected void doPost(HttpServletRequest request,
        HttpServletResponse response)
        throws IOException
    {
     out = response.getWriter();
     
     out.println("HELLO POST");

//      Create a factory for disk-based file items
     FileItemFactory factory = new DiskFileItemFactory();

//      Create a new file upload handler
     ServletFileUpload upload = new ServletFileUpload(factory);

//      Parse the request
     List items; 
     /*try{
         items = upload.parseRequest(request);
     }catch(FileUploadException e){e.printStackTrace();}*/
     
     out.println("<br>PARSE REQUESTs");
     try{
         items = upload.parseRequest(request);
         out.println("<br>ITEMS");
     
//      Process the uploaded items
     Iterator iter = items.iterator();
     while (iter.hasNext()) {
         FileItem item = (FileItem) iter.next();
         out.println("<br>FILE ITEM");
         if (item.isFormField()) {
             processFormField(item);
         } else {
             processUploadedFile(item);
         }
     }
     }catch(FileUploadException e){e.getMessage();}

    }
    public void processFormField(FileItem item){
     if (item.isFormField()) {
         String name = item.getFieldName();
         String value = item.getString();
         out.println("NAME = " + name);
         out.println("<br>VALUE = " + value);
      }
    }
    public void processUploadedFile(FileItem item){
//      Process a file upload
     boolean writeToFile = true;
     if (writeToFile) {
         File uploadedFile = new File("C:/img/temImage");
         try{
         item.write(uploadedFile);
         }catch(Exception ex){ ex.getMessage(); }
     }
    }
}

 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.