Java how to handle multiple files upload
To handle multiple file uploads in a Java web application, you can use the Apache Commons FileUpload library. Here's how you can do it:
Add the Apache Commons FileUpload library to your project: Download the latest version of the library from the Apache website and add the JAR file to your project's classpath.
Create a form to upload multiple files: In your JSP or HTML file, create a form with an input element of type "file" that allows multiple files to be selected:
<form action="UploadServlet" method="post" enctype="multipart/form-data"> <input type="file" name="file" multiple> <input type="submit" value="Upload"> </form>Source:www.theitroad.com
- Create a servlet to handle the file uploads: In your servlet, use the Apache Commons FileUpload library to handle the file uploads. Here's an example:
public class UploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory()); try { // Parse the request List<FileItem> items = upload.parseRequest(request); for (FileItem item : items) { // Process the file if (!item.isFormField()) { String fileName = new File(item.getName()).getName(); String filePath = "C:/uploads/" + fileName; File uploadedFile = new File(filePath); item.write(uploadedFile); } } // Redirect back to the upload page with a success message request.setAttribute("message", "Files uploaded successfully!"); getServletContext().getRequestDispatcher("/upload.jsp").forward(request, response); } catch (Exception e) { // Handle any errors request.setAttribute("message", "There was an error: " + e.getMessage()); getServletContext().getRequestDispatcher("/upload.jsp").forward(request, response); } } }
In this example, we create a new instance of the ServletFileUpload
class and parse the request to get a list of FileItem
objects. We then iterate over the list and process each file by writing it to the file system.
- Display the result to the user: In your JSP or HTML file, you can display a message to the user indicating whether the files were uploaded successfully or if there was an error:
<h1>Upload Files</h1> <% if (request.getAttribute("message") != null) { %> <p><%= request.getAttribute("message") %></p> <% } %> <form action="UploadServlet" method="post" enctype="multipart/form-data"> <input type="file" name="file" multiple> <input type="submit" value="Upload"> </form>
That's it! With these steps, you can handle multiple file uploads in your Java web application using the Apache Commons FileUpload library.