springboot上传照片到自己的服务器上并返回地址可以通过地址来访问
2021/12/5 23:20:46
本文主要是介绍springboot上传照片到自己的服务器上并返回地址可以通过地址来访问,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
下面三个静态路径都写在properties文件里,要用到直接注入即可。
file.uploadPath是文件的上传路径
file.visitPath是返回完整的文件映射路径【携带端口号】
file.mapPath是返回映射路径【不带端口号】
上传文件代码实现
Controller层
// 上传图片 @ApiOperation("上传照片接口") @PostMapping("/uploadImg") public Result uploadImg(@ApiParam("图片") @RequestParam("file")MultipartFile multipartFile) { return Result.success(articleService.uploadImg(multipartFile)); }
serviceImpl实现类
/** 单独拉出来 */ @Value("${file.uploadPath}") private String uploadPath; @Value("${file.visitPath}") private String visitPath; /** * 一二三步是生成文件名 * 四五六步是生成上传路径 * 第七步是上传并返回可视路径 * @param multipartFile * @return */ @Override public String uploadImg(MultipartFile multipartFile) { // 1、获取真实文件名 String originalFilename = multipartFile.getOriginalFilename(); // 2、截取图片的后缀 lastIndexOf从后往前找 String imgSuffix = originalFilename.substring(originalFilename.lastIndexOf(".")); // 3、生成唯一文件名 String newFileName = UUID.randomUUID().toString()+imgSuffix; // 4、日期目录 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); String dataPath = dateFormat.format(new Date()); // 5、指定文件上传后的目录 File targetPath = new File(uploadPath, dataPath); // 拼接成新目录 // mkdirs:不存在则创建,mkdir:不存在则返回false if(!targetPath.exists()) targetPath.mkdirs(); // 如果目录不存在,则递归创建 // 6、指定文件上传后的服务器完整路径[包括文件名] File TargetFileName = new File(targetPath, newFileName); // 7、文件上传到指定目录 try { multipartFile.transferTo(TargetFileName); // 文件上传到指定目录 String finalFileName = dataPath + "/" + newFileName; return visitPath+"/"+finalFileName; // 返回可访问的地址 } catch (IOException e) { e.printStackTrace(); return "fail"; } }
springboot中springMVC的配置类,可以通过映射路径来访问
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Value("${file.mapPath}") private String mapPath; @Value("${file.uploadPath}") private String uploadPath; // springMVC中的方法 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 相当于把后面位置那部分起个别名,外部可以通过别名直接访问,但是直接访问上传路径是不行的 // registry.addResourceHandler(访问的路径).addResourceLocations(上传的路径); // 这个mapPath在本地测试的时候可以用到 registry.addResourceHandler(mapPath).addResourceLocations("file:"+uploadPath); } }
这篇关于springboot上传照片到自己的服务器上并返回地址可以通过地址来访问的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南