powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / загрузка файла с использованием сервлета
3 сообщений из 3, страница 1 из 1
загрузка файла с использованием сервлета
    #34752165
termit31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброй ночи.
Возникла такая проблема. Хочу через веб-интерфейс пересылать небольшие файлы на сервер.
Пример простого html
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    <html>
    <head>
      <title>Example</title>
    </head>
    <body>
        upload<p>
        <form action="Start" method="post" enctype="multipart/form-data">
            Userid: <input type = "text" name = "userid"><br><br>
            Sname: <input type = "text" name = "sname"><br><br>
            File<input type="file" name = "txt">
            <input type="submit" value = "go">
        </form>
    </body>
    </html>    
Итого 2 текстовых поля и 1 для файла.
Сервлет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
     public   class  Upload  extends  HttpServlet {
         protected   void  doPost(HttpServletRequest request, HttpServletResponse response)  throws  ServletException, IOException {
            PrintWriter pw = response.getWriter();
            //PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("demo.out")));
            /*ServletInputStream in = request.getInputStream();
            int i = in.read();
            while (i!=-1) {
                pw.print((char)i);
                i=in.read();
            }
            pw.close();*/
            pw.println("<html>");
            Enumeration params = request.getParameterNames();
             while  (params.hasMoreElements()) {
                String pname = (String) params.nextElement();
                pw.println(request.getParameter(pname));
            }
            pw.println("</html>");
        }    

Ответ на запрос обескураживает:
<html>
</html>
Т.е. сервлет не видит ни одного из 3 параметров. Если же использовать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
/*ServletInputStream in = request.getInputStream();
int i = in.read();
while (i!=-1) {
pw.print((char)i);
i=in.read();
}
pw.close();*/
, то все чин-чинарем - полный текст http запроса с границами, параметрами, значениями и т.д.
Естественно, не работает и request.getParameter("...").
Если убрать тэг enctype="multipart/form-data", то сервлет получает параметры! Конечно, без содержимого файла. Пробовал с одинаковыми результатами в ИЕ, мозилле, опере.
Пробовал разворачивать war на томкэте и на веблоджике.
Бился целый день, но нигде не нашел описания такой проблемы. Помогите, пожалуйста!
...
Рейтинг: 0 / 0
загрузка файла с использованием сервлета
    #34752172
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- в спецификации сервлетов не предусмотрена обработка запросов кодированных методом multipart/form-data

- используйте библиотеки сторонних разработчиков (например: FileUpload )
...
Рейтинг: 0 / 0
загрузка файла с использованием сервлета
    #34752197
termit31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. У меня кстати он (fileupload) и используется в основном классе, не тестовом. Наверное, неправильно настроил, буду копать глубже.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / загрузка файла с использованием сервлета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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