Java multipartconfig annotation examples
The @MultipartConfig
annotation is used to configure a servlet to handle HTTP multipart requests, which are typically used to upload files. Here are some examples of how to use the @MultipartConfig
annotation in Java:
- Setting the maximum file size and request size
@MultipartConfig(maxFileSize = 10 * 1024 * 1024, maxRequestSize = 50 * 1024 * 1024) public class FileUploadServlet extends HttpServlet { // ... }
This example sets the maximum file size to 10 MB and the maximum request size (which includes all files and form data) to 50 MB. If a request exceeds these limits, a SizeLimitExceededException
will be thrown.
- Specifying the location to store uploaded files
@MultipartConfig(location = "/path/to/upload/directory") public class FileUploadServlet extends HttpServlet { // ... }
This example specifies the directory where uploaded files should be stored. If this parameter is not specified, files will be stored in a temporary directory.
- Handling file uploads using
HttpServletRequest
@MultipartConfig public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { for (Part part : request.getParts()) { String fileName = part.getSubmittedFileName(); String contentType = part.getContentType(); long size = part.getSize(); InputStream inputStream = part.getInputStream(); // handle the file data } } }
This example shows how to handle file uploads using the HttpServletRequest
object. The getParts()
method returns a collection of Part
objects representing each file and form data item in the request. You can use the Part
methods to get information about the file, such as the file name, content type, and binary data.
- Handling file uploads using
@WebServlet
annotation
@WebServlet(name = "FileUploadServlet", urlPatterns = { "/upload" }) @MultipartConfig public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { for (Part part : request.getParts()) { String fileName = part.getSubmittedFileName(); String contentType = part.getContentType(); long size = part.getSize(); InputStream inputStream = part.getInputStream(); // handle the file data } } }
This example shows how to handle file uploads using the @WebServlet
annotation instead of the web.xml
deployment descriptor. The @MultipartConfig
annotation is used to configure the servlet to handle multipart requests. The urlPatterns
attribute of the @WebServlet
annotation is used to map the servlet to a URL pattern.