16 Aralık 2021 Perşembe

Servlet @MultipartConfig Anotasyonu - Multipart File Upload İçindir

Giriş
Şu satırı dahil ederiz
import javax.servlet.annotation.MultipartConfig;
Açıklaması şöyle
The simplest approach a developer can take to handle a file upload is to use the Servlet 3.0 Part class, which can process a multipart form element and allow a file to be incrementally saved until it completes the file upload.
Açıklaması şöyle. Bu anotasyon yerine web.xml'de tanımlama yapılabilir.
Use HttpServletRequest.getPart() API in code. You configure it via either the @MultipartConfig annotation and/or the <multipart-config> descriptor element in your WEB-INF/web.xml
Örnek
Şöyle yaparız
@WebServlet(name = "FileUploadServlet", urlPatterns = { "/fileuploadservlet" })
@MultipartConfig(
  fileSizeThreshold = 1024 * 1024 * 1, // 1 MB
  maxFileSize = 1024 * 1024 * 10,      // 10 MB
  maxRequestSize = 1024 * 1024 * 100   // 100 MB
)
//Simple Java File Upload Example
public class FileUploadServlet extends HttpServlet {

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
   
    Part filePart = request.getPart("file");
    String fileName = filePart.getSubmittedFileName();
    for (Part part : request.getParts()) {
      part.write("C:\\upload\\" + fileName);
    }
    response.getWriter().print("Sucessfully Java file upload.");
  }
}
Burada getPart("file") çağrısı ile HttpServletRequest isteğindeki şu alana erişiliyor. Buradan dosya ismi alınıyor
Content-Disposition: form-data; name="file"; filename="..."

fileSizeThreshold Alanı
Dosya belirtilen büyüklüğü geçerse diske yazılır.
Örnek
Şöyle yaparız.
@WebServlet(name = "MyServlet", urlPatterns = {"/add"})
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
    maxFileSize = 1024 * 1024 * 10, // 10MB
    maxRequestSize = 1024 * 1024 * 50)
public class MyServlet extends HttpServlet {
...
}

Hiç yorum yok:

Yorum Gönder

Bean Validation @GroupSequence Anotasyonu

Örnek Elimizde şöyle bir kod olsun public class SampleRequest {   @NotNull   LocalDate startDate;   @NotNull   LocalDate endDate;   @AssertT...