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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с FileUpload, не получается отправить файл на сервер 
V
    Опции темы
Sarmat
Дата 14.5.2009, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток.
Начну по порядку, есть jsp - форма, которая передает файл в сервлет и ничего не получается, выскакивает ошибка.

Код формы:

Цитата

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>File upload</title>
</head>
<body>
    <form action="upload" enctype="multipart/form-data" method="post">
    <input type="text" name="author">author<br />
    <input type="text" name="company">company<br />
    <input type="file" name="filename">filename<br />
    <input type="submit" value="upload">
   
    </form>
</body>
</html>



код сервелета

Цитата

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
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;

/**
 * Servlet implementation class upload
 */
public class upload extends HttpServlet {

    @SuppressWarnings("unchecked")
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
  // response.setContentType(CONTENT_TYPE);
  PrintWriter out = response.getWriter();

  try {

    
    // 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 = upload.parseRequest(request);
    // Process the uploaded items
    Iterator<Object> iter = items.iterator();
    while (iter.hasNext()) {
    FileItem item = (FileItem) iter.next();
    if (!item.isFormField()) {
     if (item.getSize() > 0) {
      @SuppressWarnings("unused")
      String fieldName = item.getFieldName();
      // Process a file upload in memory
      byte[] data = item.get();

     }
    }
    }

  } catch (Exception ex) {
    throw new ServletException(ex);
  }

    }

}



код ошибки :

Цитата

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: Error instantiating servlet class upload
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    org.apache.tomcat.util.thr
Код


eads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    java.lang.Thread.run(Unknown Source)


PM MAIL   Вверх
ynblpb
Дата 19.5.2009, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Примерно так:
Код

 response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            boolean isMultipart = ServletFileUpload.isMultipartContent(new ServletRequestContext(request));
            List<FileItem> items = upload.parseRequest(request);
            Iterator it = items.iterator();
            int i = 1;
            String fname = "";
            while (it.hasNext()) {
                FileItem object = (FileItem) it.next();
                if (object.isFormField()) {

                } else {
                    byte[] data = object.get();
                    fname = "имя файла";
                    FileOutputStream fis = new FileOutputStream(fname);
                    fis.write(data);
                    fis.close();
                }
            }
        } catch (FileUploadException ex) {
            ex.printStackTrace();
        } finally {
            out.close();
        }
    }


Это сообщение отредактировал(а) ynblpb - 19.5.2009, 05:58
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.3752 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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