一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java文件上傳Demo(必看篇)

java文件上傳Demo(必看篇)

2020-09-28 13:40Java之家 Java教程

下面小編就為大家?guī)硪黄猨ava文件上傳Demo(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

說到文件上傳我們要做到:

1.引入兩個包:commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

2.將form改為上傳文件模式:enctype="multipart/form-data"

3.開始編寫相關代碼

這里會用到幾個關鍵的類:磁盤文件工廠DiskFileItemFactory ; 創(chuàng)建servlet文件上傳類:ServletFileUpload

還有幾個重要的方法:DiskFileItemFactory類用于將以臨時文件形式保存在磁盤上的存放目錄的方法setRepository;

ServletFileUpload類得到表單中所有的數(shù)據(jù),得到form表單中所有的元素方法:parseRequest

下面看具體代碼:

說明以這種方式上傳文件是保存在服務器端的!

java" id="highlighter_633120">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
 
import javax.servlet.ServletException;
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;
import org.apache.commons.io.FileUtils;
 
 
public class UploadServlet extends HttpServlet {
 
  /**
   * Constructor of the object.
   */
  public UploadServlet() {
    super();
  }
 
  /**
   * Destruction of the servlet. <br>
   */
  public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
  }
 
  /**
   * The doGet method of the servlet. <br>
   *
   * This method is called when a form has its tag value method equals to get.
   *
   * @param request the request send by the client to the server
   * @param response the response send by the server to the client
   * @throws ServletException if an error occurred
   * @throws IOException if an error occurred
   */
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
 
    this.doPost(request, response);
  }
 
  /**
   * The doPost method of the servlet. <br>
   *
   * This method is called when a form has its tag value method equals to post.
   *
   * @param request the request send by the client to the server
   * @param response the response send by the server to the client
   * @throws ServletException if an error occurred
   * @throws IOException if an error occurred
   */
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
 
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    DiskFileItemFactory sf= new DiskFileItemFactory();//實例化磁盤被文件列表工廠
    String path = request.getRealPath("/upload");//得到上傳文件的存放目錄
    sf.setRepository(new File(path));//設置文件存放目錄
    sf.setSizeThreshold(1024*1024);//設置文件上傳小于1M放在內(nèi)存中
    String rename = "";//文件新生成的文件名
    String fileName = "";//文件原名稱
    String name = "";//普通field字段
    //從工廠得到servletupload文件上傳類
    ServletFileUpload sfu = new ServletFileUpload(sf);
     
    try {
      List<FileItem> lst = sfu.parseRequest(request);//得到request中所有的元素
      for (FileItem fileItem : lst) {
        if(fileItem.isFormField()){
          if("name".equals(fileItem.getFieldName())){
            name = fileItem.getString("UTF-8");
          }
        }else{
          //獲得文件名稱
          fileName = fileItem.getName();
          fileName = fileName.substring(fileName.lastIndexOf("\\")+1);
          String houzhui = fileName.substring(fileName.lastIndexOf("."));
          rename = UUID.randomUUID()+houzhui;
          fileItem.write(new File(path, rename));
        }
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
     
    System.out.println("普通字段"+name);
    System.out.println("文件名稱"+fileName);
    System.out.println("修改后生成的文件名稱"+rename);
    response.sendRedirect("ok.jsp");
    out.flush();
    out.close();
  }
 
  /**
   * Initialization of the servlet. <br>
   *
   * @throws ServletException if an error occurs
   */
  public void init() throws ServletException {
    // Put your code here
  }
 
}

index.jsp頁面:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head
  <title>文件測試界面</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0"
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
 </head>
 <body>
  <div align="center">
  <form action="UploadServlet" enctype="multipart/form-data" method="post">
    名稱:<input name="name" /> <br>
    圖片:<input name="img" type="file"/><br>
    <input type="submit" value="提交" /> 
    <input type="reset" value="重置" />
  </form>
  </div>
 </body>
</html>

ok.jsp頁面:

?
1
2
3
<body>
  <h1 align="center">上傳文件成功!</h1>
 </body>

實現(xiàn)效果就不截圖了,有需要自己那過去用!

以上這篇java文件上傳Demo(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 草草视频免费观看 | 深夜在线影院 | 包臀裙女教师波多野结衣 | 精品国产国产精2020久久日 | 欧美日韩国产亚洲人成 | 亚洲 日本 中文字幕 制服 | 日本大片免aaa费观看视频 | 国产二区精品视频 | 美女认你摸 | 91系列在线观看免费 | 天天干天天日天天射天天操毛片 | 亚洲国产精品一在线观看 | 国产精品久久久久久久久久久久久久 | 男人操美女视频 | 男人与雌性宠物交啪啪小说 | 日本视频一区在线观看免费 | 99视频全部看免费观 | 狠狠综合视频精品播放 | 99综合网| 国产在线观看精品香蕉v区 国产在线观看a | 青青在线国产视频 | 久久全国免费久久青青小草 | 99这里只有精品视频 | 女人爽到喷水的视频免费 | 禁忌h1v1怀孕 | 色综合天天综合网看在线影院 | 亚洲精品日韩专区在线观看 | 女人张开腿让男人做爽爽 | 欧美肥胖老妇做爰变态 | 青草久久精品亚洲综合专区 | 色婷婷综合久久久中文字幕 | 嫩草在线视频www免费观看 | 亚洲色图图 | 无人区尖叫之夜美女姐姐视频 | 国产激情影院 | 美女大乳被捏羞羞漫画 | 亚洲精品高清中文字幕完整版 | 亚洲第一天堂无码专区 | 国产成人综合一区精品 | 欧美专区亚洲 | 1313午夜精品久久午夜片 |