<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Spring boot實現上傳檔案到本地伺服器的具體程式碼,供大家參考,具體內容如下
引入設定
UploadFileConfig類
@Configuration public class UploadFileConfig { @Value("${file.uploadFolder}") private String uploadFolder; @Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setLocation(uploadFolder); //檔案最大 factory.setMaxFileSize("20MB"); return factory.createMultipartConfig(); } }
UploadFilePathConfig類
@Configuration public class UploadFilePathConfig extends WebMvcConfigurerAdapter { @Value("${file.staticAccessPath}") private String staticAccessPath; @Value("${file.uploadFolder}") private String uploadFolder; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(staticAccessPath).addResourceLocations("file:" + uploadFolder); } }
在application.properties加上傳的設定項
#檔案服務本地rest請求對外地址 file.staticAccessPath=/upload/** #檔案上傳目錄(注意Linux和Windows上目錄結構不同)需要改成你自己的實際目錄 file.uploadFolder=/Users/leichunhong/Documents/hlp/zx/ #上傳檔案本地域名 改寫成你後端服務的地址和埠 file.upload.nama=http://127.0.0.1:9090 #springBOOt上傳檔案大小 # 單個檔案的最大值 spring.servlet.multipart.max-file-size = 10MB # 上傳檔案總的最大值 spring.servlet.multipart.max-request-size=100MB
編寫上傳controller
@RestController @RequestMapping("/test") public class UploadController { @Value("${file.uploadFolder}") private String uploadFolder; @Value("${file.staticAccessPath}") private String staticAccessPath; @Value("${file.upload.nama}") private String reurl; @RequestMapping(value = "/upload", method = {RequestMethod.POST, RequestMethod.GET}) public List<String> upload(HttpServletRequest request) throws MultipartException { String path = ""; List<String> ksfs = new ArrayList<>(); //1 需傳imgUrl 其他值就是傳file檔案上傳 try { //將當前上下文初始化給 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<String> iter = multiRequest.getFileNames(); while (iter.hasNext()) { //多個檔案上傳 List<MultipartFile> fileList = multiRequest.getFiles(iter.next()); for (MultipartFile multipartFile : fileList) { String realPath = uploadFolder; String trueFileName = System.currentTimeMillis() + "." + FilenameUtils.getExtension(multipartFile.getOriginalFilename()); // 設定存放圖片檔案的路徑 path = realPath + trueFileName; File file = new File(path); multipartFile.transferTo(file); path = reurl + "/upload/" + trueFileName; ksfs.add(path); } //單個檔案 /* MultipartFile multipartFile=multiRequest.getFile(iter.next().toString()); if (multipartFile != null) { excelFile = File.createTempFile(prefix, ".jpg"); multipartFile.transferTo(excelFile); path = KSFileSave.uploadFile(prefix, excelFile, "jpg"); ksfs.add(path); }*/ } } } catch (Exception e) { e.printStackTrace(); } finally { } return ksfs; } }
呼叫介面測試,用如下的html頁面
<form method="POST" enctype="multipart/form-data" action="http:127.0.0.1:9090/test/upload"> <table> <tr><td>File to upload:</td><td><input type="file" name="file" /></td></tr> <tr><td></td><td><input type="submit" value="Upload" /></td></tr> </table> </form>
點選選擇檔案上傳驗證返回結果
檢視上傳目錄
點選返回介面存取
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45