multipart form-data action Upload |
Cообщение скрыто для удобства комментирования.
Прочитать сообщение
Если вдруг кому понадобится, то проблему решил так:
Задача:
У нас есть форма, в которую нужно добавить возможность заливки файлов.
Решение:
1. В форме:
<form method="POST"
action="some_action.jsp"
enctype="multipart/form-data">
где some_action.jsp - обработчик формы.
2. Качаем com.oreilly.servlet
3. Подключаем сервлет (в some_action.jsp):
import com.oreilly.servlet.MultipartRequest;
4. Далее, в обработчике формы (some_action.jsp):
// задаем путь, куда файлы будут копироваться
String temp_dir = "/home/kovrik/temp/";
// создаем MultipartRequest.
// аргументы:
// request - это HttpServletRequest
// temp_dir - куда файлы копируем
// 5*1024*1024 - максимальный размер файла
// "UTF-8" - кодировка
// для переименования заливаемых файлов можно добавить в качестве аргумента new com.myservlets.MyFileRenamePolicy(), где MyFileRenamePolicy() - реализация интерфейса FileRenamePolicy, в котором и происходит переименование файлов (но с этим пока не очень разобрался =) )
MultipartRequest multi = new MultipartRequest(request, temp_dir, 5*1024*1024, "UTF-8");
Всё, при обработке формы все файлы зальются в temp_dir
Но, т.к. мы добавили enctype="multipart/form-data" в форме, то остальные поля перестанут обрабатываться.
Допустим у нас было:
String name = request.getParameter("name");
Меняем request (HttpServletRequest) на multi (MultipartRequest):
String name = multi.getParameter("name");
Всё, теперь поле name будет обрабатываться как раньше. С остальными поступаем аналогично.
* This source code was highlighted with Source Code Highlighter.| Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |