• 文件上传


    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 中有输出。

      

      文件上传成功。

      

      

  • 相关阅读:
    Asp.Net 合并图片(二维码和其他图片合并)
    Asp.Net 隐藏手机号中间四位为*方法
    Linux后台运行进程 node screen
    nginx 实现负载均衡
    Python 字典递归合并
    搭建Elasticsearch环境,logstash环境
    搭建Elasticsearch环境,搭建kibana 环境
    flask mysql sqlalchemy教程
    MySQL数据库+命令大全+常用操作
    Python开发单元测试,必不可少
  • 原文地址:https://www.cnblogs.com/gzbit-zxx/p/7641856.html
Copyright © 2020-2023  润新知