zoukankan      html  css  js  c++  java
  • 上传文件详解

    首先,创建文件夹用来存放上传的文件,起名为upload(名称任意取);在工程中导入commons-fileupload-1.2.1和commons-io-2.4两个jar包,如下图:

    然后,做一个简单的前台页面:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>                                                  
    10     <form action="${pageContext.request.contextPath }/fileUpload" method="post" enctype="multipart/form-data">
    11         <input type="text" name ="username"><br>
    12         <input type="file" name="filename"><br>
    13         <input type="submit" value="上传">
    14     </form>
    15 </body>
    16 </html>

    最后,创建对应Servlet:

     1 package demo;
     2 
     3 import java.io.FileOutputStream;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.OutputStream;
     7 import java.util.List;
     8 
     9 import javax.servlet.ServletException;
    10 import javax.servlet.http.HttpServlet;
    11 import javax.servlet.http.HttpServletRequest;
    12 import javax.servlet.http.HttpServletResponse;
    13 
    14 import org.apache.commons.fileupload.FileItem;
    15 import org.apache.commons.fileupload.FileUploadException;
    16 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    17 import org.apache.commons.fileupload.servlet.ServletFileUpload;
    18 
    19 public class FileUploadServlet extends HttpServlet {
    20 
    21     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    22         request.setCharacterEncoding("UTF-8");
    23         //接收上传的文件
    24         try {
    25             //1.创建磁盘文件项工厂
    26             DiskFileItemFactory factory = new DiskFileItemFactory();
    27             
    28             //2.创建文件上传核心类
    29             ServletFileUpload upload = new ServletFileUpload(factory);
    30             
    31             //3.解析request-----获得文件项集合
    32             List<FileItem> parseRequest = upload.parseRequest(request);
    33             
    34             //4.遍历文件项集合
    35             for (FileItem item : parseRequest) {
    36                 //5.判断是普通表单项/文件上传项
    37                 boolean formField = item.isFormField();//true代表普通表单项,false代表文件上传项
    38                 if (formField) {
    39                     String fieldName = item.getFieldName();
    40                     String fieldValue = item.getString();
    41                     System.out.println(fieldName + "-----" + fieldValue);
    42                 }else {
    43                     //获得上传文件的名称
    44                     String fileName = item.getName();
    45                     
    46                     /*
    47                      * 获得上传文件的内容
    48                      */
    49                     InputStream in = item.getInputStream();
    50                     String path = this.getServletContext().getRealPath("/upload"); 
    51                     OutputStream out = new FileOutputStream(path + "/" + fileName);
    52                     int len = 0;
    53                     byte[] buffer = new byte[1024];
    54                     while((len=(in.read(buffer)))!=-1) {
    55                         out.write(buffer, 0, len);
    56                     }
    57                     out.close();
    58                     in.close();
    59                 }
    60             }
    61             
    62         } catch (FileUploadException e) {
    63             e.printStackTrace();
    64         }
    65     }
    66 
    67     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    68         doGet(request, response);
    69     }
    70 }

    启动工程,可以正常上传,上传的文件存到了tomcat/webapps中该项目下的upload文件夹中。

  • 相关阅读:
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Maximum Depth of Binary Tree
    Sharepoint 2013 创建TimeJob 自动发送邮件
    IE8 不能够在Sharepoint平台上在线打开Office文档解决方案
    TFS安装与管理
    局域网通过IP查看对方计算机名,通过计算机名查看对方IP以及查看在线所有电脑IP
    JS 隐藏Sharepoint中List Item View页面的某一个字段
    SharePoint Calculated Column Formulas & Functions
    JS 两个一组数组转二维数组
  • 原文地址:https://www.cnblogs.com/AI-xiaocai/p/10685960.html
Copyright © 2011-2022 走看看