日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring 文件上传功能

發布時間:2025/3/21 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring 文件上传功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章,我們要來做一個Spring的文件上傳功能:

1. 創建一個Maven的web工程,然后配置pom.xml文件,增加依賴:

1 2 3 4 5 <dependency> ????<groupId>org.springframework.boot</groupId> ????<artifactId>spring-boot-starter-web</artifactId> ????<version>1.0.2.RELEASE</version> </dependency>

2.在webapp目錄下的index.jsp文件中輸入一個表單:

1 2 3 4 5 6 7 8 9 10 <html> <body> <form method="POST"?enctype="multipart/form-data" ??????action="/upload"> ????File to upload: <input type="file"?name="file"><br /> Name: <input ????????type="text"?name="name"><br /> <br /> <input type="submit" ?????????????????????????????????????????????????????value="Upload"> Press here to upload the file! </form> </body> </html>

這個表單就是我們模擬的上傳頁面。

3. 編寫處理這個表單的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 import?java.io.BufferedOutputStream; import?java.io.File; import?java.io.FileOutputStream; import?org.springframework.stereotype.Controller; import?org.springframework.web.bind.annotation.RequestMapping; import?org.springframework.web.bind.annotation.RequestMethod; import?org.springframework.web.bind.annotation.RequestParam; import?org.springframework.web.bind.annotation.ResponseBody; import?org.springframework.web.multipart.MultipartFile; @Controller public?class?FileUploadController { ????@RequestMapping(value="/upload", method=RequestMethod.GET) ????public?@ResponseBody?String provideUploadInfo() { ????????return?"You can upload a file by posting to this same URL."; ????} ????@RequestMapping(value="/upload", method=RequestMethod.POST) ????public?@ResponseBody?String handleFileUpload(@RequestParam("name") String name, ????????????@RequestParam("file") MultipartFile file){ ????????if?(!file.isEmpty()) { ????????????try?{ ????????????????byte[] bytes = file.getBytes(); ????????????????BufferedOutputStream stream = ????????????????????????new?BufferedOutputStream(new?FileOutputStream(new?File(name +?"-uploaded"))); ????????????????stream.write(bytes); ????????????????stream.close(); ????????????????return?"You successfully uploaded "?+ name +?" into "?+ name +?"-uploaded !"; ????????????}?catch?(Exception e) { ????????????????return?"You failed to upload "?+ name +?" => "?+ e.getMessage(); ????????????} ????????}?else?{ ????????????return?"You failed to upload "?+ name +?" because the file was empty."; ????????} ????} }

4. 然后我們對上傳的文件做一些限制,同時編寫main方法來啟動這個web :

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 import?org.springframework.boot.SpringApplication; import?org.springframework.boot.autoconfigure.EnableAutoConfiguration; import?org.springframework.boot.context.embedded.MultiPartConfigFactory; import?org.springframework.context.annotation.Bean; import?org.springframework.context.annotation.ComponentScan; import?org.springframework.context.annotation.Configuration; import?javax.servlet.MultipartConfigElement; @Configuration @ComponentScan @EnableAutoConfiguration public?class?Application { ????@Bean ????public?MultipartConfigElement multipartConfigElement() { ????????MultiPartConfigFactory factory =?new?MultiPartConfigFactory(); ????????factory.setMaxFileSize("128KB"); ????????factory.setMaxRequestSize("128KB"); ????????return?factory.createMultipartConfig(); ????} ????public?static?void?main(String[] args) { ????????SpringApplication.run(Application.class, args); ????} }

  5. 然后訪問http://localhost:8080/upload就可以看到頁面了。

?

上面的例子是實現的是單個文件上傳的功能,假定我們現在要實現文件批量上傳的功能的話,我們只需要簡單的修改一下上面的代碼就行,考慮到篇幅的問題,下面只是貼出和上面不同的代碼,沒有貼出的說明和上面一樣。:

1.  新增batchUpload.jsp文件

1 2 3 4 5 6 7 8 9 10 <html> <body> <form method="POST"?enctype="multipart/form-data" ??????action="/batch/upload"> ????File to upload: <input type="file"?name="file"><br /> ????File to upload: <input type="file"?name="file"><br /> ????<input type="submit"?value="Upload"> Press here to upload the file! </form> </body> </html>

2. 新增BatchFileUploadController.java文件:

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 import?org.springframework.stereotype.Controller; import?org.springframework.web.bind.annotation.RequestMapping; import?org.springframework.web.bind.annotation.RequestMethod; import?org.springframework.web.bind.annotation.ResponseBody; import?org.springframework.web.multipart.MultipartFile; import?org.springframework.web.multipart.MultipartHttpServletRequest; import?javax.servlet.http.HttpServletRequest; import?java.io.BufferedOutputStream; import?java.io.File; import?java.io.FileOutputStream; import?java.util.List; /** ?* Created by wenchao.ren on 2014/4/26. ?*/ @Controller public?class?BatchFileUploadController { ????@RequestMapping(value="/batch/upload", method= RequestMethod.POST) ????public?@ResponseBody ????String handleFileUpload(HttpServletRequest request){ ????????List<MultipartFile> files = ((MultipartHttpServletRequest)request).getFiles("file"); ????????for?(int?i =0; i< files.size(); ++i) { ????????????MultipartFile file = files.get(i); ????????????String name = file.getName(); ????????????if?(!file.isEmpty()) { ????????????????try?{ ????????????????????byte[] bytes = file.getBytes(); ????????????????????BufferedOutputStream stream = ????????????????????????????new?BufferedOutputStream(new?FileOutputStream(new?File(name + i))); ????????????????????stream.write(bytes); ????????????????????stream.close(); ????????????????}?catch?(Exception e) { ????????????????????return?"You failed to upload "?+ name +?" => "?+ e.getMessage(); ????????????????} ????????????}?else?{ ????????????????return?"You failed to upload "?+ name +?" because the file was empty."; ????????????} ????????} ????????return?"upload successful"; ????} }

  這樣一個簡單的批量上傳文件的功能就ok了,是不是很簡單啊。

?

注意:上面的代碼只是為了演示而已,所以編碼風格上采取了隨性的方式,不建議大家模仿。

?

參考資料:

1. MultipartResolver也可以實現文件上傳功能。參考文章:http://mylfd.iteye.com/blog/1893648

總結

以上是生活随笔為你收集整理的Spring 文件上传功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。