従業員の名前、性別、年齢、電子メールアドレス、および
12192 次
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 に答える