In our web development, many times we need to upload some files from the machine to the web server.
For example: a BBS system, when users use this system, they can upload some pictures and documents of the machine to the server. Then other users can download these files. In this way, we can program the file upload by ourselves, but a better way is to use some existing components to help us realize this upload function.
Common upload components :
Commons FileUpload by Apache
JavaZoom's UploadBean
jspSmartUpload
FileUpload download address :
http://commons.apache.org/fileupload/
Download: commons-fileupload-1.2.2-bin.zip Get: commons-fileupload-1.2.2.jar
http://commons.apache.org/io/
Download: commons-io-1.4-bin.zip Get: commons-io-1.4.jar
upload.jsp
code;
<%@ page language="java" contentType="text/html; charset=UTF-8"%><html><head><title>using commons Upload to upload file </title></head><style>* { font-family: "安体"; font-size: 14px }</style><body><p align="center"> Please select the file you want to upload</p><form id="form1" name="form1" method="post" action="servlet/fileServlet" enctype="multipart/form-data"> <table align="center"> <tr> <td>Uploader: </td> <td> <input name="name" type="text" id="name" size="20" ></td> </tr> <tr> <td>Upload file: </td> <td><input name="file" type="file" size="20" ></td> </tr> <tr> <td></td><td> <input type="submit" name="submit" value="submit" > <input type="reset" name="reset" value="reset" > </td> </tr> </table></form></body></html>FileUploadServlet.java code:
package com.b510.example;import java.io.File;import java.io.IOException;import java.util.*;import javax.servlet.ServletConfig;import javax.servlet.ServletContext;import javax.servlet.Servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;/** * * @author XHW * * @date 2011-7-26 * */public class FileUploadServlet extends HttpServlet { private static final long serialVersionUID = -7744625344830285257L; private ServletContext sc; private String savePath; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void init(ServletConfig config) { // An initialization parameter set in web.xml savePath = config.getInitParameter("savePath"); sc = config.getServletContext(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List items = upload.parseRequest(request); Iterator itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); if (item.isFormField()) { System.out.println("Form parameter name:" + item.getFieldName() + ", form parameter value:" + item.getString("UTF-8")); } else { if (item.getName() != null && !item.getName().equals(""))) { System.out.println("Upload file size:" + item.getSize()); System.out.println("Upload file type:" + item.getContentType()); // item.getName() returns the full path name of the uploaded file on the client System.out.println("Upload file name:" + item.getName()); File tempFile = new File(item.getName()); // Upload file save path File file = new File(sc.getRealPath("/") + savePath, tempFile.getName()); item.write(file); request.setAttribute("upload.message", "The file upload was successful! "); }else{ request.setAttribute("upload.message", "No upload file selected!"); } } } } } catch(FileUploadException e){ e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); request.setAttribute("upload.message", "Upload file failed!"); } request.getRequestDispatcher("/uploadResult.jsp").forward(request, response); }}uploadResult.jsp code:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>uploadResult</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> ${requestScope['upload.message'] } <a href="/upload/uploadFile.jsp">Upload file</a> </body></html>web.xml
Code:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>FileUploadServlet</servlet-name> <servlet-class>com.b510.example.FileUploadServlet</servlet-class> <! --Set initialization parameters --> <init-param> <param-name>savePath</param-name> <param-value>uploads</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>FileUploadServlet</servlet-name> <url-pattern>/servlet/fileServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>uploadFile.jsp</welcome-file> </welcome-file-list></web-app>
The above is all the content of this article. I hope it will be helpful to everyone's learning and I hope everyone will support Wulin.com more.