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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲人成毛片线播放 | 波多野结在线观看 | 欧美成人免费tv在线播放 | 亚洲欧美成人综合在线 | 青青热久麻豆精品视频在线观看 | 狠狠狠地啪香蕉 | 国产午夜小视频 | 色老汉 | 亚洲成av人片天堂网 | 互换娇妻爽文100系列小说 | 黑人粗长巨茎小说 | 日本偷偷操| 精品久久99麻豆蜜桃666 | 黄网国产| 女医学护士一级毛片 | 经典三级四虎在线观看 | 国产久热精品 | 国产精品青青在线观看香蕉 | sao虎影院桃红视频在线观看 | 范冰冰好紧好滑好湿 | 欧美福利在线播放 | 天天做日日做天天添天天欢公交车 | 91天堂影院 | 乌克兰13一14娇小 | jiuse在线| 丝瓜视频成人在线观看 | 亚洲第9页| 娇小老少配xxxxx性视频 | 美女脱了内裤让男桶爽 | 美女脱了内裤打开腿让人桶网站o | 欧洲另类一二三四区 | 99re在线视频免费观看 | 亚洲成年人免费网站 | 亚洲AV无码国产精品色午夜情 | 免费观看欧美一级高清 | 古代翁熄系小说辣文 | 国产伊人网 | 日韩精品一区二区三区免费视频 | 波多野结在线 | 纲手被强喷水羞羞漫画 | 国产xx肥老妇视频奂费 |