java上传文件到服务器java实现文件上传的三种方式java 上传文件到服务器




java上传文件到服务器java实现文件上传的三种方式java 上传文件到服务器

2022-07-20 21:28:42 网络知识 官方管理员

一、需求
在项目开发中,遇到需要将页面上的文件上传至本地保存,之后这个上传的文件还能进行访问,后台是SpringBoot框架搭建的,只需将文件上传至SpringBoot项目编译之后的classes\static\文件夹中即可。如下图:

java上传文件到服务器(java实现文件上传的三种方式)(1)

二、文件上传

1、定义文件上传接口方法

//在pom.xml引入spring-boot-starter-web依赖,即可导包importorg.springframework.web.multipart.MultipartFile;//fileRoot:上传文件保存的根路径Stringupload(MultipartFilefile,StringfileRoot)throwsIOException;

2、文件上传接口方法实现

@OverridepublicStringupload(MultipartFilefile,StringfileRoot)throwsIOException{prepareFilePath(fileRoot);//获取上传文件的原文件名StringfileName=file.getOriginalFilename();//规则化之后的文件上传根路径StringnormalizeFileRoot=getNormalizeFileRoot(fileRoot);//根据路径和文件名创建目标文件FiletargetFile=newFile(normalizeFileRoot,fileName);//如果目标文件存在,删除if(targetFile.exists())targetFile.delete();//将目标文件进行转移file.transferTo(targetFile);returnString.format("%s\\%s",normalizeFileRoot,fileName);}/**fileRoot:上传文件保存的根路径此方法是准备文件上传的路径,如果路径不存在,即创建*/privatevoidprepareFilePath(StringfileRoot){Filefile=newFile(Helper.normalizePath(fileRoot));if(!file.exists())file.mkdirs();}/**该方法主要对文件路径进行规则化,如:D:\\\360Browser\///360Chrome\\//,像这种路径就不正确,此方法可以将路径规则化为:D:\360Browser\360Chrome*/privateStringgetNormalizeFileRoot(StringfileRoot){returnHelper.normalizePath(fileRoot);}

Helper工具类中的路径规则化方法

publicstaticStringnormalizePath(Stringpath){Stringresult=path.replaceAll("/+",Matcher.quoteReplacement(File.separator));returnresult.replaceAll("\\\\+",Matcher.quoteReplacement(File.separator));}

3、Controller

@PostMapping("/upload")publicRequestResultupload(@RequestParam("file")MultipartFilefile)throwsIOException{Configconfig=configService.get("Upload","FileRoot");StringfilePath=busService.upload(file,config.getValue());returnRequestResult.success(filePath);}

三、测试

1、使用Postman进行文件上传测试

java上传文件到服务器(java实现文件上传的三种方式)(2)

2、在浏览器中输入定位文件.doc,可以将文件下载到本地

java上传文件到服务器(java实现文件上传的三种方式)(3)


发表评论:

最近发表
网站分类
标签列表