zoukankan      html  css  js  c++  java
  • 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字段对应有上传文件名字。

  • 相关阅读:
    Java基础(九)--反射
    Java基础(八)--String(源码)、StringBuffer、StringBuilder
    Java基础(七)--Exception异常处理
    Java基础(五)--内部类
    Redis系列(十一)--阿里云开发规范
    Java基础(四)--接口和抽象类
    Java基础(三)--final关键字
    生成count个[0-n)不重复的随机数
    Java基础(二)--this关键字及初始化
    十大Intellij IDEA快捷键(附IDEA快捷键详细列表及使用技巧)
  • 原文地址:https://www.cnblogs.com/evilliu/p/8709602.html
Copyright © 2011-2022 走看看