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, so in this way, we can program the file upload by ourselves
But a better way is to use some existing components to help us implement this upload function.
Common upload components:
Commons FileUpload by Apache
JavaZoom's UploadBean
jspSmartUpload
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.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 savedPath set in web.xml = 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", "Upload file successfully!"); }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" rel="external nofollow" > --> </head> <body> ${requestScope['upload.message'] } <a href="/upload/uploadFile.jsp" rel="external nofollow" >Upload file</a> </body></html>web.xml
<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>
This article has been compiled into "Summary of Java Upload Operation Techniques", and everyone is welcome to learn and read.
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.