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

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

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

服務器之家 - 編程語言 - Java教程 - SpringMVC實現文件上傳和下載功能

SpringMVC實現文件上傳和下載功能

2020-12-21 10:32AltErNatiVe Java教程

這篇文章主要為大家詳細介紹了SpringMVC實現文件上傳和下載功能 ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了SpringMVC實現文件上傳下載的具體代碼,供大家參考,具體內容如下

文件上傳 

第一步,加入jar包:

commons-fileupload-1.3.1.jar
commons-io-2.4.jar

第二步,在SpringMVC配置文件中配置CommonsMultipartResovler

?
1
2
3
4
5
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 <property name="defaultEncoding" value="utf-8"></property>
  //最大上傳文件大小
 <property name="maxUploadSize" value="1048576"></property>
</bean>

第三步,前端表單   注意 【POST請求,file類型,enctype="multipart/form-data"】

?
1
2
3
4
5
<form action="${pageContext.request.contextPath }/testUpload" method="post" enctype="multipart/form-data">
 File:<input type="file" name="file"><br>
 desc:<input type="text" name="desc"><br>
 <input type="submit" value="submit"><br>
</form><br>

第四步,在controller層創建方法

?
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
@RequestMapping(value="/testUpload",method=RequestMethod.POST)
    private String testUpload(HttpServletRequest request,@RequestParam(value="desc")String desc,@RequestParam(value="file") CommonsMultipartFile file) {
 
    InputStream inputStream = null;
    OutputStream outputStream = null;
    ServletContext servletContext = request.getServletContext();
    //獲取文件存放的真實路徑
    String realPath = servletContext.getRealPath("/upload");
    //為了避免多次上傳同一個文件導致命名重復,在文件名前加UUID前綴
    String prefix=UUID.randomUUID().toString();
    prefix=prefix.replace("-", "");
    String fileName=prefix+"_"+file.getOriginalFilename();
 
    File file2=new File(realPath);
    //檢查文件目錄是否存在,若不存在就創建目錄
    if(!file2.exists()){
    file2.mkdirs();
    }
 
    try {
    inputStream=file.getInputStream();
    outputStream=new FileOutputStream(new File(realPath+"/"+fileName));
    //設置緩沖區
    byte[]buffer=new byte[1024];
    int len=0;
    //循環檢測文件是否上傳完成,未完成就向寫入輸出流
    while((len=inputStream.read(buffer)) != -1){
    outputStream.write(buffer, 0, len);
    outputStream.flush();
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally{
    //關閉輸入輸出流
    if(outputStream !=null){
    try {
    outputStream.close();
    inputStream.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
   }
 
 return "success";
 }

 文件下載 

用ResponseEntity<byte[]> 返回值完成文件下載;在jsp頁面給出鏈接即可。

jsp頁面鏈接地址:

 

復制代碼 代碼如下:
<a href="${pageContext.request.contextPath }/testResponseEntity" rel="external nofollow" >下載鏈接</a> 

 

在controller層創建方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@RequestMapping(value="/testResponseEntity")
 ResponseEntity<byte[]>testResponseEntity(HttpServletRequest request)throws Exception{
 ServletContext servletContext = request.getServletContext();
 //獲取要下載的文件的文件名
 String fileName="喜劇之王.mp3";
 //獲取要下載的文件的真實路徑
 String realPath = servletContext.getRealPath("/WEB-INF/"+fileName);
 //創建輸入流
 InputStream inputStream=new FileInputStream(new File(realPath));
 
 byte[]body=new byte[inputStream.available()];
 inputStream.read(body);
 MultiValueMap<String, String>headers=new HttpHeaders();
 
 //設置頭信息和字符集
 fileName = new String(fileName.getBytes("gbk"),"iso8859-1");
 headers.set("Content-Disposition", "attachment;filename="+fileName);
 
 HttpStatus statusCode = HttpStatus.OK;
 ResponseEntity<byte[]>responseEntity =new ResponseEntity<byte[]>(body, headers, statusCode);
 
 return responseEntity;
 }

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

原文鏈接:http://www.cnblogs.com/alternative/archive/2017/08/24/7424746.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好男人资源在线观看免费的 | caonila国产在线观看 | 亚洲风情无码免费视频 | 操国产美女 | 喜欢老头吃我奶躁我的动图 | 亚洲成人网导航 | 大又大又粗又爽女人毛片 | 免费观看欧美成人禁片 | 热热影院 | aaaa黄| 欧美日韩精品一区二区三区高清视频 | 黄色aaa级片 | 女子监狱第二季未删减在线看 | acg火影忍者熟密姬纲手h | 高h辣文小说网 烧书阁 | 77成人影院 | 国产91页 | 99re思思 | 免费看国产精品麻豆 | ysl蜜桃色成人麻豆 youwu在线影院 | 日韩欧美国产成人 | 喜马拉雅听书免费版 | 四虎永久在线精品国产 | 国产精品国产色综合色 | 美女狂揉尿口揉到失禁 | 五月婷婷伊人网 | 亚洲天堂视频在线免费观看 | 午夜性色一区二区三区不卡视频 | 亚洲天堂男人天堂 | 天天做天天玩天天爽天天 | yin娃sao货调教情趣用品店 | 嗯啊视频在线观看 | 九九九九九九伊人 | 按摩师他揉我奶好爽捏我奶 | 国产精品色拉拉免费看 | 美女无内裤下部黄 | 国产亚洲精品高清在线 | 午夜福利理论片在线播放 | 1024亚洲精品国产 | 久久久久久久国产精品视频 | 国产欧美在线播放 |