0

従業員の名前、性別、年齢、電子メールアドレス、および

4

1 に答える 1

2

Servlet 3.0 コンテナは、マルチパート データを標準サポートしています。最初に、他の入力パラメーターと共にファイル入力を受け取る 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>

次に、Servlet 3.0 Upload API を使用する UploadServlet を作成します。API の使用法を示すコードを次に示します。まず、マルチパート データを処理するサーブレットは、次の 2 つの方法のいずれかを使用して MultiPartConfig を定義する必要があります。

  • @MultiPartConfigサーブレット クラスのアノテーション
  • 定義内にエントリをweb.xml,追加することによって。<multipart-config><servlet>

これが 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"));



    }

}

Sevlet 3.0 Container を使用していない場合は、Apache Commons File Upload を実行する必要があります。Apache Commons File Upload を使用するためのリンクは次のとおりです。

参考文献:

于 2012-06-27T04:45:02.563 に答える