麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

Spring boot實現文件上傳功能

2024-07-14 08:41:22
字體:
來源:轉載
供稿:網友

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

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

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  <version>1.0.2.RELEASE</version> </dependency> 

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

<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> 

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

3. 編寫處理這個表單的Controller:

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 :

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文件

<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文件:

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了,是不是很簡單啊。

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

參考資料:MultipartResolver實現文件上傳功能

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。

1. MultipartResolver也可以實現文件上傳功能。參考文章:


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久国产精品久久久久久久久久 | 欧美精品在线视频观看 | 久久成人免费观看 | 国产精品亚洲yourport | 久色精品视频 | 欧美视频在线一区二区三区 | 国产一级一区二区 | 亚洲热线99精品视频 | 欧美成人理论片乱 | 免费激情视频网站 | 黄色一级片在线免费观看 | 成年人视频在线免费观看 | 麻豆国产网站 | 免费一级a毛片免费观看 | 综合毛片| 一起草av在线 | 极品销魂一区二区三区 | 国产免费一区二区三区视频 | 亚洲视频在线免费看 | 精品一区二区6 | 国产精品久久久久久久四虎电影 | 中文字幕免费在线观看视频 | 久久久久久久亚洲精品 | 国产精品剧情一区二区三区 | 国产精品视频专区 | 国产成人精品网站 | 国产二区三区视频 | 久久综合精品视频 | 成人免费在线视频 | 欧美zoofilia杂交videos | 国产成人精品无人区一区 | 久久影院一区二区三区 | 欧美a在线播放 | 免费观看黄色一级视频 | 玩偶姐姐 在线观看 | 国产一区二区三区在线免费 | 99精品无人区乱码在线观看 | 午夜精品福利视频 | 美国黄色毛片女人性生活片 | 孕妇体内谢精满日本电影 | 青青草国产在线视频 |