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

    1、前言

      文件上传是我们经常遇到的,使用我自己就写了一个小小的代码。

    2、准备工作

      你可以新建一个 javaweb 项目,用于测试我们自己写的代码,如果在测试的项目中成功的话,在将这写代码写入正式的项目中。

      新建的web项目:

      

      还需要引入2个 JAR 包:

      

      将这两个jar 加入 Libraries 中即可。

     3、编辑上传文件界面

      在 WebRoot 中新建 index.jsp 文件,然后编写如下: 

    <form action="<%=basePath%>uploadFile" enctype="multipart/form-data" method="post">
            <input type="file" name="file">
            <input type="submit">
        </form>

      

    4、上传文件到指定文件

      代码如下:

    package com.stydy.servlet;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    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 TongZhou
     *    2017年10月09日
     */
    @WebServlet("/uploadFile")
    public class UploadFile extends HttpServlet {
        
        /**
         * doGet方法
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request,response);
        }
    
        /**
         * doPost 方法
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            //解决上传时的乱码问题
            request.setCharacterEncoding("utf-8");
            
            //创建一个工厂
            DiskFileItemFactory factory=new DiskFileItemFactory();
            
            //通过工厂创建解析器
            ServletFileUpload upload=new ServletFileUpload(factory);
            
            //解析 request
            try {
                List<FileItem> files=upload.parseRequest(request);
                
                //获取传入文件
                FileItem file=files.get(0);
                
                //获取文件名
                System.out.println(file.getName());
                
                //获取文件的上传类型
                System.out.println(file.getContentType());
                
                //获取本地file文件
                File f=new File("G://a.txt");
                
                //写入上传的内容
                file.write(f);
                
            } catch (FileUploadException e) {
                e.printStackTrace();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }

     5、实验结果如下:

      我是在我电脑的  G://a.txt  新建的一个a.txt 文本件,然后我往里上传数据。

      浏览器:

      

      

      在 console 中有输出的,因为我在 Servlet 中有输出。

      

      文件上传成功。

      

      

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/gzbit-zxx/p/7641856.html
Copyright © 2011-2022 走看看