Difference between revisions of "Uploading a file"
From MyWiki
(Created page with "'''Reference:''' https://www.tutorialspoint.com/jsp/jsp_file_uploading.htm") |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | '''Reference:''' https://www.tutorialspoint.com/jsp/jsp_file_uploading.htm | + | '''Reference:''' https://www.tutorialspoint.com/jsp/jsp_file_uploading.htm<br> |
+ | Needs commons-fileupload.x.x.jar and commons-io-x.x.jar download from https://commons.apache.org/fileupload/ and https://commons.apache.org/io/ | ||
+ | Make sure the target directories are created<br> | ||
+ | |||
+ | The upload form | ||
+ | <source lang="java"> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>File Uploading Form</title> | ||
+ | </head> | ||
+ | |||
+ | <body> | ||
+ | <h3>File Upload:</h3> | ||
+ | Select a file to upload: <br /> | ||
+ | <form action = "UploadServlet" method = "post" | ||
+ | enctype = "multipart/form-data"> | ||
+ | <input type = "file" name = "file" size = "50" /> | ||
+ | <br /> | ||
+ | <input type = "submit" value = "Upload File" /> | ||
+ | </form> | ||
+ | </body> | ||
+ | |||
+ | </html> | ||
+ | </source> | ||
+ | |||
+ | The target Servlet | ||
+ | <source lang="java"> | ||
+ | <%@ page import = "java.io.*,java.util.*, javax.servlet.*" %> | ||
+ | <%@ page import = "javax.servlet.http.*" %> | ||
+ | <%@ page import = "org.apache.commons.fileupload.*" %> | ||
+ | <%@ page import = "org.apache.commons.fileupload.disk.*" %> | ||
+ | <%@ page import = "org.apache.commons.fileupload.servlet.*" %> | ||
+ | <%@ page import = "org.apache.commons.io.output.*" %> | ||
+ | |||
+ | <% | ||
+ | File file ; | ||
+ | int maxFileSize = 5000 * 1024; | ||
+ | int maxMemSize = 5000 * 1024; | ||
+ | ServletContext context = pageContext.getServletContext(); | ||
+ | String filePath = context.getInitParameter("file-upload"); | ||
+ | |||
+ | // Verify the content type | ||
+ | String contentType = request.getContentType(); | ||
+ | |||
+ | if ((contentType.indexOf("multipart/form-data") >= 0)) { | ||
+ | DiskFileItemFactory factory = new DiskFileItemFactory(); | ||
+ | // maximum size that will be stored in memory | ||
+ | factory.setSizeThreshold(maxMemSize); | ||
+ | |||
+ | // Location to save data that is larger than maxMemSize. | ||
+ | factory.setRepository(new File("c:\\temp")); | ||
+ | |||
+ | // Create a new file upload handler | ||
+ | ServletFileUpload upload = new ServletFileUpload(factory); | ||
+ | |||
+ | // maximum file size to be uploaded. | ||
+ | upload.setSizeMax( maxFileSize ); | ||
+ | |||
+ | try { | ||
+ | // Parse the request to get file items. | ||
+ | List fileItems = upload.parseRequest(request); | ||
+ | |||
+ | // Process the uploaded file items | ||
+ | Iterator i = fileItems.iterator(); | ||
+ | |||
+ | out.println("<html>"); | ||
+ | out.println("<head>"); | ||
+ | out.println("<title>JSP File upload</title>"); | ||
+ | out.println("</head>"); | ||
+ | out.println("<body>"); | ||
+ | |||
+ | while ( i.hasNext () ) { | ||
+ | FileItem fi = (FileItem)i.next(); | ||
+ | if ( !fi.isFormField () ) { | ||
+ | // Get the uploaded file parameters | ||
+ | String fieldName = fi.getFieldName(); | ||
+ | String fileName = fi.getName(); | ||
+ | boolean isInMemory = fi.isInMemory(); | ||
+ | long sizeInBytes = fi.getSize(); | ||
+ | |||
+ | // Write the file | ||
+ | if( fileName.lastIndexOf("\\") >= 0 ) { | ||
+ | file = new File( filePath + | ||
+ | fileName.substring( fileName.lastIndexOf("\\"))) ; | ||
+ | } else { | ||
+ | file = new File( filePath + | ||
+ | fileName.substring(fileName.lastIndexOf("\\")+1)) ; | ||
+ | } | ||
+ | fi.write( file ) ; | ||
+ | out.println("Uploaded Filename: " + filePath + | ||
+ | fileName + "<br>"); | ||
+ | } | ||
+ | } | ||
+ | out.println("</body>"); | ||
+ | out.println("</html>"); | ||
+ | } catch(Exception ex) { | ||
+ | System.out.println(ex); | ||
+ | } | ||
+ | } else { | ||
+ | out.println("<html>"); | ||
+ | out.println("<head>"); | ||
+ | out.println("<title>Servlet upload</title>"); | ||
+ | out.println("</head>"); | ||
+ | out.println("<body>"); | ||
+ | out.println("<p>No file uploaded</p>"); | ||
+ | out.println("</body>"); | ||
+ | out.println("</html>"); | ||
+ | } | ||
+ | %> | ||
+ | </source> |
Latest revision as of 09:04, 29 August 2023
Reference: https://www.tutorialspoint.com/jsp/jsp_file_uploading.htm
Needs commons-fileupload.x.x.jar and commons-io-x.x.jar download from https://commons.apache.org/fileupload/ and https://commons.apache.org/io/
Make sure the target directories are created
The upload form
<html> <head> <title>File Uploading Form</title> </head> <body> <h3>File Upload:</h3> Select a file to upload: <br /> <form action = "UploadServlet" method = "post" enctype = "multipart/form-data"> <input type = "file" name = "file" size = "50" /> <br /> <input type = "submit" value = "Upload File" /> </form> </body> </html>
The target Servlet
<%@ page import = "java.io.*,java.util.*, javax.servlet.*" %> <%@ page import = "javax.servlet.http.*" %> <%@ page import = "org.apache.commons.fileupload.*" %> <%@ page import = "org.apache.commons.fileupload.disk.*" %> <%@ page import = "org.apache.commons.fileupload.servlet.*" %> <%@ page import = "org.apache.commons.io.output.*" %> <% File file ; int maxFileSize = 5000 * 1024; int maxMemSize = 5000 * 1024; ServletContext context = pageContext.getServletContext(); String filePath = context.getInitParameter("file-upload"); // Verify the content type String contentType = request.getContentType(); if ((contentType.indexOf("multipart/form-data") >= 0)) { DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File("c:\\temp")); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax( maxFileSize ); try { // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); out.println("<html>"); out.println("<head>"); out.println("<title>JSP File upload</title>"); out.println("</head>"); out.println("<body>"); while ( i.hasNext () ) { FileItem fi = (FileItem)i.next(); if ( !fi.isFormField () ) { // Get the uploaded file parameters String fieldName = fi.getFieldName(); String fileName = fi.getName(); boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); // Write the file if( fileName.lastIndexOf("\\") >= 0 ) { file = new File( filePath + fileName.substring( fileName.lastIndexOf("\\"))) ; } else { file = new File( filePath + fileName.substring(fileName.lastIndexOf("\\")+1)) ; } fi.write( file ) ; out.println("Uploaded Filename: " + filePath + fileName + "<br>"); } } out.println("</body>"); out.println("</html>"); } catch(Exception ex) { System.out.println(ex); } } else { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); } %>