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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файла на сервер с параметрами, не могу, получить, параметры 
V
    Опции темы
GigabyteHlama
Дата 12.9.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Проблема такая, отправялю из формы на hello.jsp страничке файл и параметры к нему впридачу вот так:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html; charset=windows-1251" %>
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
<html>
<head>
<title>Hello World Sample</title>
</head>
<body>
<form action="FileUpload" method="post" enctype="multipart/form-data">
<INPUT type="text" name="nomLoad" value="1"/><br>
    <br />
    <input type="file" name="myfile" /><br>
    <input type="submit" />
</form>
<c:out value="${param.nomLoad}" />
</body>
</html>

В сервлете читаю и для проверки параметр nomLoad отправляю обратно в hello.jsp страничьку - ничего не появляется, а файл загружается нормально
Вот сервлет:
Код

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String nomLoad;
        response.setContentType("text/html;charset=Windows-1251");
        request.setCharacterEncoding("Cp1251");
        nomLoad = request.getParameter("nomLoad");
        request.setAttribute("nomLoad", nomLoad);
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if(isMultipart){
            // Create a factory for disk-based file items
            FileItemFactory factory = new DiskFileItemFactory();
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setFileSizeMax(1024*300);
            ServletContext context=getServletContext();
            String path=context.getRealPath("/");
            // Parse the request
            try {
                List items = upload.parseRequest(request);
                Iterator iter = items.iterator();
                while (iter.hasNext()) {
                    FileItem item = (FileItem) iter.next();
                    File f1 = new File(path,"index.csv");
                    item.write(f1);
                }
            } catch (Exception e) {
                throw new ServletException(e);
            }            
        }
        getServletContext().getRequestDispatcher("/hello.jsp").forward(request, response);
    }


Как я понял, сервлет не может прочитать из реквеста параметр numLoad потому-что у формы тип для передачи файлов. Как-то подругому надо
реквест обрабатывать чтобы numLoad вытащить?
P.S. В PHP у меня получалось и файл и параметры посланые из формы прочитать. Но это было в другой жизни smile

Это сообщение отредактировал(а) powerOn - 12.9.2009, 10:25
PM MAIL   Вверх
bvfalcon
Дата 13.9.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Почему вы данные формы ищете в прямо в параметрах объекта HttpServletRequest? У вас же не GET-запрос.
Если не ошибаюсь, они у вас идут в виде FileItem-ов, в списке items (это который upload.parseRequest(request)).
Посмотрите на готовый пример работы с Apache FileUpload. Если не ошибаюсь, вы его используете?
PM   Вверх
GigabyteHlama
Дата 14.9.2009, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо bvfalcon!. Разобрался. Надо было мне внимательнее читать!
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.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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