外部ライブラリを使用せずに、Servlet 3.0 API を使用してマルチパート ポストでファイルを受信して保存します。:
最初に、マルチパートを有効にして「Post」経由でファイルをアップロードする必要があります。これは、大きなファイルをアップロードするためのより便利な方法であるためです。「パーツ」「ファイル」に名前を付ける必要があります。各パーツにはヘッダーがあります。コードはヘッダーを読み取って、元のファイル名を使用するか、アップロード時間に応じて設定します。このコードは、アップロード リクエストを確認するための簡単なテキストを書き込みます。
import java.io.IOException;
import java.io.PrintWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@MultipartConfig
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Part part = request.getPart("file");
Matcher m = Pattern.compile("filename=\"(.*)\"", Pattern.CASE_INSENSITIVE).matcher(
part.getHeader("content-disposition"));
String filename;
if (m.find()) {
filename = m.group(1);
} else {
filename = "upload" + System.currentTimeMillis();
}
part.write("C:/path/" + filename);
out.println("File '" + filename + "' uploaded.");
}
}