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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> загрузка файла в БД 
:(
    Опции темы
breath
Дата 2.6.2008, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Народ помогите решить проблему.
Есть сервлет такого вида:
Код

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public final class UploadImage extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
    static final long serialVersionUID = 1L;

    public UploadImage() {
        super();
    }    

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }    

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String FNAME = "_1";
        FileItemFactory factory= new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);

        String fileName = null;//имя файла на клиентской машине
        FileItem actualFile = null;//файл
        PrintWriter out = response.getWriter();
        try {
            List<?> items = upload.parseRequest(request);
            Iterator<?> iter = items.iterator();
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                if (item.isFormField()) {//если текущий элемент не файл
                    String name = item.getFieldName();//имя параметра
                    String value = item.getString();//значение параметра
                    if (name.equals("fname1")) {//файл записывается в таблицу БД,
                        //в запись где ключевое поле=fname1
                        FNAME = value; 
                    }
                } else //если текущий элемент файл
                {
                    fileName = item.getName();//имя файла
                    actualFile = item;//тело файла
                }
            }

            if (fileName != null && fileName.length() > 0 && actualFile != null)
            {
                String docType="";//расширение файла
                fileName=fileName.toLowerCase();
                if (fileName.substring(fileName.length()-3, fileName.length()).equals("jvu"))
                {
                    docType="djvu";
                }else if(fileName.substring(fileName.length()-3, fileName.length()).equals("txt"))
                {
                    docType="txt";
                }else if(fileName.substring(fileName.length()-3, fileName.length()).equals("rtf"))
                {
                    docType="rtf";
                }else if(fileName.substring(fileName.length()-3, fileName.length()).equals("doc"))
                {
                    docType="doc";
                }else if(fileName.substring(fileName.length()-3, fileName.length()).equals("jpg"))
                {
                    docType="jpg";
                }
            } else {}
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


при запуске на IBM WASCE 2.0 получается следующий иксепшн:
Код


HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
    org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
    org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)
    org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    UploadImage.doPost(UploadImage.java:34)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:806)

root cause

java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream in classloader default/Bricks/1.0/car
    org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:428)
    org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:278)
    java.lang.ClassLoader.loadClass(Unknown Source)
    java.lang.ClassLoader.loadClassInternal(Unknown Source)
    org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
    org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)
    org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    UploadImage.doPost(UploadImage.java:34)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:806)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.


и в консоли пишет такое:
Код


16:13:15,609 ERROR [[UploadImage]] Servlet.service() for servlet UploadImage threw exception
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream in classloader default/Bricks/1.0/car
    at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:428)
    at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:278)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    at UploadImage.doPost(UploadImage.java:34)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
    at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:401)
    at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)


Пожалуйста помогите разобраться - срочно нужно.
Заранее спасибо.
PM MAIL   Вверх
Maksym
Дата 2.6.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



breath
Похоже commons-io-x-x.jar не хватает...
PM MAIL   Вверх
breath
Дата 2.6.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Залил библиотечку на сервер, но ошибка та же.
PM MAIL   Вверх
breath
Дата 2.6.2008, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вопрос: можно ли как-то забирать файлы в байтовый массив не используя библиотеку FileUpload?
PM MAIL   Вверх
Maksym
Дата 2.6.2008, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Цитата(breath @  2.6.2008,  15:41 Найти цитируемый пост)
Залил библиотечку на сервер, но ошибка та же. 

Не туда залил. Где она у тебя сейчас?... переложи в lib приложения

PM MAIL   Вверх
breath
Дата 2.6.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо! Заработало!
Подскажи пожалуйста, как получить тело файла в виде массива байтов?
Еще вопрос: есть ли какие-то доки на русском по FileUpload?
На буржуйском конечно тоже нормально, но на родном все же легче воспринимается... smile
PM MAIL   Вверх
Maksym
Дата 2.6.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Цитата(breath @  2.6.2008,  17:24 Найти цитируемый пост)
Подскажи пожалуйста, как получить тело файла в виде массива байтов?

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


Новичок



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

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



Спасибо еще раз - все получилось! smile
PM MAIL   Вверх
Maksym
Дата 2.6.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



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

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

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


 




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


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

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