观看麻豆影视文化有限公司-国产 高清 在线-国产 日韩 欧美 亚洲-国产 日韩 欧美 综合-日日夜夜免费精品视频-日日夜夜噜

spring文件上傳大小限制(spring上傳到文件服務器)

  • 生活
  • 2023-04-25 13:25

多條告白如次劇本只需引入一次

零、本篇重心

引見SpringBoot對文獻上傳的機動擺設。引見MultipartFile接口。引見SpringBoot+Thymeleaf文獻上傳demo的調整。引見對文獻典型,文獻名長度等確定本領。一、SpringBoot對文獻處置關系機動擺設

機動擺設是SpringBoot為咱們供給的便當之一,開拓者不妨在不作任何擺設的情景下,運用SpringBoot供給的默許樹立,如處置文獻須要的MultipartResolver。

@Configuration(proxyBeanMethods=false)@ConditionalOnClass({Servlet.class,StandardServletMultipartResolver.class,MultipartConfigElement.class})@ConditionalOnProperty(prefix="spring.servlet.multipart",name="enabled",matchIfMissing=true)@ConditionalOnWebApplication(type=Type.SERVLET)@EnableConfigurationProperties(MultipartProperties.class)publicclassMultipartAutoConfiguration{privatefinalMultipartPropertiesmultipartProperties;publicMultipartAutoConfiguration(MultipartPropertiesmultipartProperties){this.multipartProperties=multipartProperties;}@Bean@ConditionalOnMissingBean({MultipartConfigElement.class,CommonsMultipartResolver.class})publicMultipartConfigElementmultipartConfigElement(){returnthis.multipartProperties.createMultipartConfig();}@Bean(name=DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME)@ConditionalOnMissingBean(MultipartResolver.class)publicStandardServletMultipartResolvermultipartResolver(){StandardServletMultipartResolvermultipartResolver=newStandardServletMultipartResolver();multipartResolver.setResolveLazily(this.multipartProperties.isResolveLazily());returnmultipartResolver;}}Spring3.1之后扶助StandardServletMultipartResolver,且默許運用StandardServletMultipartResolver,它的便宜在乎:運用Servlet所供給的功效扶助,不須要依附任何其余的名目。想要機動擺設奏效,須要擺設spring.servlet.multipart.enabled=true,固然這個擺設默許即是true。關系的擺設樹立在MultipartProperties中,個中字段即是對應的屬性樹立,典范字段有:enabled:能否打開文獻上傳機動擺設,默許打開。location:上傳文獻的偶爾目次。maxFileSize:最大文獻巨細,以字節為單元,默許為1M。maxRequestSize:所有乞求的最大含量,默許為10M。fileSizeThreshold:文獻巨細到達該閾值,將寫入偶爾目次,默許為0,即一切文獻城市徑直寫入磁盤偶爾文獻中。resolveLazily:能否惰性處置乞求,默許為false。咱們也不妨自設置處置的詳細,須要實行MultipartResolver接口。二、處置上傳文獻MultipartFile接口

SpringBoot為咱們供給了MultipartFile宏大接口,讓咱們不妨獲得上傳文獻的精細消息,如原始文獻名,實質典型之類,接口實質如次:

publicinterfaceMultipartFileextendsInputStreamSource{StringgetName();//獲得參數名@NullableStringgetOriginalFilename();//原始的文獻名@NullableStringgetContentType();//實質典型booleanisEmpty();longgetSize();//巨細byte[]getBytes()throwsIOException;//獲得字節數組InputStreamgetInputStream()throwsIOException;//以流辦法舉行讀取defaultResourcegetResource(){returnnewMultipartFileResource(this);}//將上傳的文獻寫入文獻體例voidtransferTo(Filevar1)throwsIOException,IllegalStateException;//寫入指定pathdefaultvoidtransferTo(Pathdest)throwsIOException,IllegalStateException{FileCopyUtils.copy(this.getInputStream(),Files.newOutputStream(dest));}}三、SpringBoot+Thymeleaf調整demo

1、編寫遏制器

/***文獻上傳**@authorSummerday*/@ControllerpublicclassFileUploadController{privatestaticfinalStringUPLOADED_FOLDER=System.getProperty("user.dir");@GetMapping("/")publicStringindex(){return"file";}@PostMapping("/upload")publicStringsingleFileUpload(@RequestParam("file")MultipartFilefile,RedirectAttributesredirectAttributes)throwsIOException{if(file.isEmpty()){redirectAttributes.addFlashAttribute("msg","文獻為空,請采用你的文獻上傳");return"redirect:uploadStatus";}saveFile(file);redirectAttributes.addFlashAttribute("msg","上傳文獻"+file.getOriginalFilename()+"勝利");redirectAttributes.addFlashAttribute("url","/upload/"+file.getOriginalFilename());return"redirect:uploadStatus";}privatevoidsaveFile(MultipartFilefile)throwsIOException{Pathpath=Paths.get(UPLOADED_FOLDER+"/"+file.getOriginalFilename());file.transferTo(path);}@GetMapping("/uploadStatus")publicStringuploadStatus(){return"uploadStatus";}}2、編寫頁面file.html

<htmlxmlns:th="http://www.thymeleaf.org"><!--suppressALL--><htmllang="en"><head><metacharset="UTF-8"><title>文獻上傳界面</title></head><body><div><formmethod="POST"enctype="multipart/form-data"action="/upload"><table><tr><td><inputtype="file"name="file"/></td></tr><tr><td></td><td><inputtype="submit"value="上傳"/></td></tr></table></form></div></body></html>3、編寫頁面uploadStatus.html

<!--suppressALL--><htmlxmlns:th="http://www.thymeleaf.org"><htmllang="en"><head><metacharset="UTF-8"><title>文獻上傳界面</title></head><body><divth:if="${msg}"><h2th:text="${msg}"/></div><div><imgsrc=""th:src="${url}"></div></body></html>4、編寫擺設

server.port=8081spring.servlet.multipart.max-file-size=10MBspring.servlet.multipart.max-request-size=10MB5、擺設假造路途映照

這一步利害常要害的,咱們將文獻上傳到效勞器上時,咱們須要將咱們的乞求路途和效勞器上的路途舉行對應,否則很有大概文獻上傳勝利,但考察波折:

@ConfigurationpublicclassMvcConfigimplementsWebMvcConfigurer{privatestaticfinalStringUPLOADED_FOLDER=System.getProperty("user.dir");@OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){registry.addResourceHandler("/upload/**").addResourceLocations("file:///"+UPLOADED_FOLDER+"/");}}對應聯系須要本人去設置,即使考察波折,不妨試著打字與印刷以次路途,看看能否缺點和失誤了路途分割符。

提防:即使addResourceHandler不要寫成處置/**,如許會阻擋掉其余的乞求

6、嘗試頁面

實行mvnspring-boot:run,啟用步調,考察http://localhost:8081/,采用文獻,點擊上傳按鈕,咱們的名目目次下展示了mongo.jpg,而且頁面也勝利表露:

四、SpringBoot的Restful作風,歸來url

/***文獻上傳**@authorSummerday*/@RestControllerpublicclassFileUploadRestController{/***文獻名長度*/privatestaticfinalintDEFAULT_FILE_NAME_LENGTH=100;/***承諾的文獻典型*/privatestaticfinalString[]ALLOWED_EXTENSIONS={"jpg","img","png","gif"};/***名目路途*/privatestaticfinalStringUPLOADED_FOLDER=System.getProperty("user.dir");@PostMapping("/restUpload")publicMap<String,Object>singleFileUpload(@RequestParam("file")MultipartFilefile)throwsException{if(file.isEmpty()){thrownewException("文獻為空!");}Stringfilename=upload(file);Stringurl="/upload/"+filename;Map<String,Object>map=newHashMap<>(2);map.put("msg","上傳勝利");map.put("url",url);returnmap;}/***上傳本領*/privateStringupload(MultipartFilefile)throwsException{intlen=file.getOriginalFilename().length();if(len>DEFAULT_FILE_NAME_LENGTH){thrownewException("文獻名勝過控制!");}Stringextension=getExtension(file);if(!isValidExtension(extension)){thrownewException("文獻***不精確");}//自設置文獻名Stringfilename=getPathName(file);//獲得file東西Filedesc=getFile(filename);//寫入filefile.transferTo(desc);returnfilename;}/***獲得file東西*/privateFilegetFile(Stringfilename)throwsIOException{Filefile=newFile(UPLOADED_FOLDER+"/"+filename);if(!file.getParentFile().exists()){file.getParentFile().mkdirs();}if(!file.exists()){file.createNewFile();}returnfile;}/***考證文獻典型能否精確*/privatebooleanisValidExtension(Stringextension){for(StringallowedExtension:ALLOWED_EXTENSIONS){if(extension.equalsIgnoreCase(allowedExtension)){returntrue;}}returnfalse;}/***此處自定?%

猜你喜歡

主站蜘蛛池模板: 亚洲精品美女在线观看播放 | 久热香蕉精品视频在线播放 | 成人欧美一区二区三区黑人 | 国内精品国语自产拍在线观看55 | 色综合精品 | 国产高清天干天天视频 | 中文字幕一区二区三区精彩视频 | 亚洲精品系列 | 国产成人爱片免费观看视频 | 亚洲成av人影片在线观看 | 2020夜夜操 | 又黄又湿又爽 | 日韩精品久久一区二区三区 | 娇小性色xxxxx中文 | 欧美xxxxx毛片 | 亚洲国产精品综合久久网络 | 亚洲成人一级片 | 成年人免费观看的视频 | 亚洲国产免费 | 亚洲综合色视频在线观看 | 亚洲精品美女在线观看 | 久久视精品 | 日本网址在线观看 | 亚洲一区二区三区免费看 | 99re5久久在热线播放 | 一本大道香蕉久在线不卡视频 | 91国在线高清视频 | 美女视频一区二区三区 | 亚洲精品久久久久影 | 黄色毛片播放 | 亚洲国语在线视频手机在线 | 久久国产欧美日韩精品 | 午夜性爽视频男人的天堂在线 | 午夜在线视频一区二区三区 | 99热官网| 欧美成人在线影院 | 亚洲成aⅴ人片在线观 | 在线视频精品一区 | 成 人 在 线 免费 8888 www | 欧美一级成人毛片影院 | 欧美videos娇小 |