国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - Java教程 - SpringMVC上傳文件的三種實現方式

SpringMVC上傳文件的三種實現方式

2020-07-20 13:12Jackvin Java教程

本篇文章主要介紹了SpringMVC上傳文件的三種實現方式,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

SpringMVC上傳文件的三種實現方式,直接上代碼吧,大伙一看便知

前臺:

?
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
<%@ page language="java" contentType="text/html; charset=utf-8"
 
  pageEncoding="utf-8"%>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
<title>Insert title here</title>
 
</head>
 
<body>
 
<form name="serForm" action="/SpringMVC006/fileUpload" method="post" enctype="multipart/form-data">
 
<h1>采用流的方式上傳文件</h1>
 
<input type="file" name="file">
 
<input type="submit" value="upload"/>
 
</form>
 
<form name="Form2" action="/SpringMVC006/fileUpload2" method="post" enctype="multipart/form-data">
 
<h1>采用multipart提供的file.transfer方法上傳文件</h1>
 
<input type="file" name="file">
 
<input type="submit" value="upload"/>
 
</form>
 
<form name="Form2" action="/SpringMVC006/springUpload" method="post" enctype="multipart/form-data">
 
<h1>使用spring mvc提供的類的方法上傳文件</h1>
 
<input type="file" name="file">
 
<input type="submit" value="upload"/>
 
</form>
 
</body>
 
</html>

配置:

?
1
2
3
4
5
6
7
8
9
10
11
<!-- 多部分文件上傳 -->
 
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 
   <property name="maxUploadSize" value="104857600" />
 
   <property name="maxInMemorySize" value="4096" />
 
   <property name="defaultEncoding" value="UTF-8"></property>
 
</bean>

后臺:

方式一:

?
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
/*
 
   * 通過流的方式上傳文件
 
   * @RequestParam("file") 將name=file控件得到的文件封裝成CommonsMultipartFile 對象
 
   */
 
  @RequestMapping("fileUpload")
 
  public String fileUpload(@RequestParam("file") CommonsMultipartFile file) throws IOException {
 
     
 
     
 
    //用來檢測程序運行時間
 
    long startTime=System.currentTimeMillis();
 
    System.out.println("fileName:"+file.getOriginalFilename());
 
     
 
    try {
 
      //獲取輸出流
 
      OutputStream os=new FileOutputStream("E:/"+new Date().getTime()+file.getOriginalFilename());
 
      //獲取輸入流 CommonsMultipartFile 中可以直接得到文件的流
 
      InputStream is=file.getInputStream();
 
      int temp;
 
      //一個一個字節的讀取并寫入
 
      while((temp=is.read())!=(-1))
 
      {
 
        os.write(temp);
 
      }
 
      os.flush();
 
      os.close();
 
      is.close();
 
     
 
    } catch (FileNotFoundException e) {
 
      // TODO Auto-generated catch block
 
      e.printStackTrace();
 
    }
 
    long endTime=System.currentTimeMillis();
 
    System.out.println("方法一的運行時間:"+String.valueOf(endTime-startTime)+"ms");
 
    return "/success";
 
  }

方式二:

?
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
/*
 
   * 采用file.Transto 來保存上傳的文件
 
   */
 
  @RequestMapping("fileUpload2")
 
  public String fileUpload2(@RequestParam("file") CommonsMultipartFile file) throws IOException {
 
     long startTime=System.currentTimeMillis();
 
    System.out.println("fileName:"+file.getOriginalFilename());
 
    String path="E:/"+new Date().getTime()+file.getOriginalFilename();
 
     
 
    File newFile=new File(path);
 
    //通過CommonsMultipartFile的方法直接寫文件(注意這個時候)
 
    file.transferTo(newFile);
 
    long endTime=System.currentTimeMillis();
 
    System.out.println("方法二的運行時間:"+String.valueOf(endTime-startTime)+"ms");
 
    return "/success";
 
  }

方式三:

?
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
/*
 
   *采用spring提供的上傳文件的方法
 
   */
 
  @RequestMapping("springUpload")
 
  public String springUpload(HttpServletRequest request) throws IllegalStateException, IOException
 
  {
 
     long startTime=System.currentTimeMillis();
 
     //將當前上下文初始化給 CommonsMutipartResolver (多部分解析器)
 
    CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
 
        request.getSession().getServletContext());
 
    //檢查form中是否有enctype="multipart/form-data"
 
    if(multipartResolver.isMultipart(request))
 
    {
 
      //將request變成多部分request
 
      MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
 
      //獲取multiRequest 中所有的文件名
 
      Iterator iter=multiRequest.getFileNames();
 
       
 
      while(iter.hasNext())
 
      {
 
        //一次遍歷所有文件
 
        MultipartFile file=multiRequest.getFile(iter.next().toString());
 
        if(file!=null)
 
        {
 
          String path="E:/springUpload"+file.getOriginalFilename();
 
          //上傳
 
          file.transferTo(new File(path));
 
        }
 
         
 
      }
 
      
 
    }
 
    long endTime=System.currentTimeMillis();
 
    System.out.println("方法三的運行時間:"+String.valueOf(endTime-startTime)+"ms");
 
  return "/success";
 
  }

我們看看測試上傳的時間:

第一次我用一個4M的文件:

fileName:test.rar

方法一的運行時間:14712ms

fileName:test.rar

方法二的運行時間:5ms

方法三的運行時間:4ms 

第二次:我用一個50M的文件

方式一進度很慢,估計得要個5分鐘

方法二的運行時間:67ms

方法三的運行時間:80ms

從測試結果我們可以看到:用springMVC自帶的上傳文件的方法要快的多!

對于測試二的結果:可能是方法三得挨個搜索,所以要慢點。不過一般情況下我們是方法三,因為他能提供給我們更多的方法

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/fjsnail/p/3491033.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成人av片在线观看 | 日韩三级电影 | 免费观看黄色 | 亚洲免费精品 | 亚洲成人精品在线 | 一区二区三区高清 | 欧美黄色www| 欧美日一区 | 国产欧美久久久久久 | 国产在线成人 | 国产精品1 | 国产高清精品一区二区三区 | 国产一区美女视频 | 国产色区 | 欧美激情精品久久久久 | 亚洲一区二区中文字幕 | 色先锋影院 | 精品国产一级毛片 | 国产精品影视在线观看 | 欧美大片免费高清观看 | 久久久午夜爽爽一区二区三区三州 | 人人澡人人射 | 日韩在线不卡一区 | 一区二区三区www. | 男女中文字幕 | 91亚洲日本aⅴ精品一区二区 | a级免费电影 | 国产精品区二区三区日本 | 久久精品无码一区二区日韩av | 一本色道久久综合狠狠躁篇怎么玩 | 免费观看在线午夜影视 | 国产精品自产拍在线观看桃花 | 秋霞电影院午夜伦 | 91亚洲国产精品 | 在线播放一区二区三区 | 中文字幕一区二区三区精彩视频 | 操操操av | 一区二区高清 | 韩日一区| 久久久国产视频 | 国产伊人一区 |