• java文件上传


    一:

    上传文件需要满足以下条件:

    1、enctype="multipart/form-data" 方法为post。

    2:servlet需要注解:@MultipartConfig。

    3:<input name="f" type="file"> file类型的input标签。

    4:servlet通过part获取上传流,通过String name=part.getHeader("Content-Disposition")来获取文件名字。

    5:通过commons.io来进行文件拷贝。

    代码:

    前端:

     1 <html>
     2   <head>
     3     <title>$Title$</title>
     4   </head>
     5   <body>
     6   <form action="/upload"  method="post" enctype="multipart/form-data">
     7     姓名:<input   name="username"><br>
     8     picture:<input name="f" type="file"><br>
     9     <input type="submit"><br>
    10 
    11   </form>
    12   </body>
    13 </html>

    后端:

     1 package jd.com.upload;
     2 
     3 
     4 
     5 import org.apache.commons.io.IOUtils;
     6 
     7 import javax.servlet.ServletException;
     8 import javax.servlet.annotation.MultipartConfig;
     9 import javax.servlet.annotation.WebServlet;
    10 import javax.servlet.http.HttpServlet;
    11 import javax.servlet.http.HttpServletRequest;
    12 import javax.servlet.http.HttpServletResponse;
    13 import javax.servlet.http.Part;
    14 import java.io.FileOutputStream;
    15 import java.io.IOException;
    16 import java.io.InputStream;
    17 import java.io.OutputStream;
    18 
    19 @WebServlet(name = "ServletUpload",urlPatterns = "/upload")
    20 @MultipartConfig
    21 public class ServletUpload extends HttpServlet {
    22     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    23         request.setCharacterEncoding("utf-8");
    24         String username=request.getParameter("username");
    25         System.out.println(username);
    26         Part part=request.getPart("f");
    27         String name=part.getHeader("Content-Disposition");
    28         //获取文件名字
    29         name=name.substring(name.indexOf("filename")+10,name.length()-1);
    30         System.out.println(name);
    31         InputStream inp=part.getInputStream();
    32         System.out.println(inp);
    33         OutputStream outp=new FileOutputStream("D:\upload\"+name);
    34         //文件IO流拷贝。
    35         IOUtils.copy(inp,outp);
    36         inp.close();
    37         outp.close();
    38 
    39     }
    40 
    41     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    42 
    43     }
    44 }

     其中在post过程中:Content-Disposition字段对应有上传文件名字。

  • 相关阅读:
    mysql 中将汉字(中文)按照拼音首字母排序
    数据库连接客户端 dbeaver 程序包以及使用说明
    maven 项目在 tomcat 中启动报错:Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
    iPadOS 更新日志
    iOS 更新日志
    mybatis 中 if else 用法
    Chrome 地址栏如何设置显示 http/https 和 www
    Windows 常用工具 & 开发工具 & Chrome插件 & Firefox 插件 & 办公软件
    elasticsearch安装ik分词器
    js关闭浏览器
  • 原文地址:https://www.cnblogs.com/evilliu/p/8709602.html
Copyright © 2020-2023  润新知