2018-06-28 09:25:01 1287瀏覽
本文實(shí)例為大家分享了Springboot實(shí)現(xiàn)文件上傳的具體代碼,供大家參考,具體內(nèi)容如下
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.0.2.RELEASE</version> </dependency>
<html> <body> <formmethod="POST"enctype="multipart/form-data"action="/upload"> Filetoupload:<inputtype="file"name="file"><br/> Name:<inputtype="text"name="name"><br/><br/> <inputtype="submit"value="Upload"> Pressheretouploadthefile! </form> </body>這個(gè)表單就是我們模擬的上傳頁面
3.編寫處理這個(gè)表單的Controller:
importjava.io.BufferedOutputStream; importjava.io.File; importjava.io.FileOutputStream; importorg.springframework.stereotype.Controller; importorg.springframework.web.bind.annotation.RequestMapping; importorg.springframework.web.bind.annotation.RequestMethod; importorg.springframework.web.bind.annotation.RequestParam; importorg.springframework.web.bind.annotation.ResponseBody; importorg.springframework.web.multipart.MultipartFile; @Controller publicclassFileUploadController{ @RequestMapping(value="/upload",method=RequestMethod.GET) public@ResponseBodyStringprovideUploadInfo(){ return"YoucanuploadafilebypostingtothissameURL."; } @RequestMapping(value="/upload",method=RequestMethod.POST) public@ResponseBodyStringhandleFileUpload(@RequestParam("name")Stringname, @RequestParam("file")MultipartFilefile){ if(!file.isEmpty()){ try{ byte[]bytes=file.getBytes(); BufferedOutputStreamstream= newBufferedOutputStream(newFileOutputStream(newFile(name+"-uploaded"))); stream.write(bytes); stream.close(); return"Yousuccessfullyuploaded"+name+"into"+name+"-uploaded!"; }catch(Exceptione){ return"Youfailedtoupload"+name+"=>"+e.getMessage(); } }else{ return"Youfailedtoupload"+name+"becausethefilewasempty."; } } }
importorg.springframework.boot.SpringApplication; importorg.springframework.boot.autoconfigure.EnableAutoConfiguration; importorg.springframework.boot.context.embedded.MultiPartConfigFactory; importorg.springframework.context.annotation.Bean; importorg.springframework.context.annotation.ComponentScan; importorg.springframework.context.annotation.Configuration; importjavax.servlet.MultipartConfigElement; @Configuration @ComponentScan @EnableAutoConfiguration publicclassApplication{ @Bean publicMultipartConfigElementmultipartConfigElement(){ MultiPartConfigFactoryfactory=newMultiPartConfigFactory(); factory.setMaxFileSize("128KB"); factory.setMaxRequestSize("128KB"); returnfactory.createMultipartConfig(); } publicstaticvoidmain(String[]args){ SpringApplication.run(Application.class,args); } }
<html> <body> <formmethod="POST"enctype="multipart/form-data" action="/batch/upload"> Filetoupload:<inputtype="file"name="file"><br/> Filetoupload:<inputtype="file"name="file"><br/> <inputtype="submit"value="Upload">Pressheretouploadthefile! </form> </body> </html>
importorg.springframework.stereotype.Controller; importorg.springframework.web.bind.annotation.RequestMapping; importorg.springframework.web.bind.annotation.RequestMethod; importorg.springframework.web.bind.annotation.ResponseBody; importorg.springframework.web.multipart.MultipartFile; importorg.springframework.web.multipart.MultipartHttpServletRequest; importjavax.servlet.http.HttpServletRequest; importjava.io.BufferedOutputStream; importjava.io.File; importjava.io.FileOutputStream; importjava.util.List; /** *Createdbywenchao.renon2014/4/26. */ @Controller publicclassBatchFileUploadController{ @RequestMapping(value="/batch/upload",method=RequestMethod.POST) public@ResponseBody StringhandleFileUpload(HttpServletRequestrequest){ List<MultipartFile>files=((MultipartHttpServletRequest)request).getFiles("file"); for(inti=0;i<files.size();++i){ MultipartFilefile=files.get(i); Stringname=file.getName(); if(!file.isEmpty()){ try{ byte[]bytes=file.getBytes(); BufferedOutputStreamstream= newBufferedOutputStream(newFileOutputStream(newFile(name+i))); stream.write(bytes); stream.close(); }catch(Exceptione){ return"Youfailedtoupload"+name+"=>"+e.getMessage(); } }else{ return"Youfailedtoupload"+name+"becausethefilewasempty."; } } return"uploadsuccessful"; } }
這樣一個(gè)簡(jiǎn)單的批量上傳文件的功能就ok了,是不是很簡(jiǎn)單啊。以上就是扣丁學(xué)堂為大家?guī)淼膉ava中Spring boot實(shí)現(xiàn)文件上傳功能,如果你對(duì)java感興趣的話,請(qǐng)登錄扣丁學(xué)堂官網(wǎng),或者關(guān)注微信公眾號(hào),大量java在線視頻教程等你來觀看!
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>