Загрузка изображения сервлета Java / Jsp вместе со значениями формы [закрыто]

I have a jsp form that accepts details about Employee name, sex, age, E-mail address and a

 BalusC27 июн. 2012 г., 02:02
возможный дубликатHow to upload files in JSP/Servlet?

Ответы на вопрос(1)

Servlet 3.0 container's имеет стандартную поддержку для составных данных. Сначала вы должны написать HTML-страницу, которая принимает входной файл вместе с другими входными параметрами.

form action="uploadservlet" method="post" enctype="multipart/form-data">
    ;input type="text" name="name" />
    ;input type="text" name="age" />
    ;input type="file" name="photo" />
    ;input type="submit" />
;/form>

Теперь напишите UploadServlet, который использует API загрузки Servlet 3.0. Вот код, который демонстрирует использование API. Во-первых, сервлет, обрабатывающий многокомпонентные данные, должен определить MultiPartConfig, используя любой из двух подходов:

@MultiPartConfig annotation on Servlet Class In web.xml, by adding ;multipart-config> entry inside ;servlet> definition.

Вот UploadServlet,

@MultipartConfig
 public class UploadServlet extends HttpServlet
 {
   protected void service(HttpServletRequest request, 
       HttpServletResponse responst) throws ServletException, IOException
   {
      Collection;Part> parts = request.getParts();
      if (parts.size() != 3) {
         //can write error page saying all details are not entered
       }

       Part filePart = httpServletRequest.getPart("photo");
       InputStream imageInputStream = filePart.getInputStream();
       //read imageInputStream
       filePart.write("somefiepath");
       //can also write the photo to local storage

       //Read Name, String Type 
       Part namePart = request.getPart("name");
       if(namePart.getSize() > 20){
           //write name cannot exceed 20 chars
       }
       //use nameInputStream if required        
       InputStream nameInputStream = namePart.getInputStream();
       //name , String type can also obtained using Request parameter 
       String nameParameter = request.getParameter("name");

       //Similialrly can read age properties
       Part agePart = request.getPart("age");
       int ageParameter = Integer.parseInt(request.getParameter("age"));



    }

}

If you are not using Sevlet 3.0 Container, вы должны быть правдивыми загрузки файлов Apache Commons. Вот ссылки для использования Apache Commons File Upload:

Using Apache Commons File Upload Apache Commons File Upload Example

References:

Servlet 3.0 javax.servlet.http.HttpServletRequest API Servlet 3.0 javax.servlet.http.Part API Uploading File using Servlet 3.0

Ваш ответ на вопрос