springboot获取静态图片路径_Springboot jar包上传图片获取静态资源路径

1、增加过滤配置

package com.XXX.config;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration

public class PathConfig extends WebMvcConfigurerAdapter{

//将jar文件下的对应静态资源文件路径对应到磁盘的路径(根据个人的情况修改"file:static/"的static的值

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.

addResourceHandler("/static/**"). addResourceLocations("classpath:/static/","file:static/");

}

}

2、配置yml

spring:

resources:

static-locations: classpath:static/,file:${jar.fileUrl}

# file配置(jar和fileUrl自己随意定义)

jar:

fileUrl: D:/XXX/XXX/upload/static

3、具体实现

@PostMapping("/upload")

public String upload(MultipartFile image,String username,HttpSession session) throws Exception {

//主要是这句,获得路径,上传的图片存放在D:/XXX/XXX/upload/static/static下

String destDir=session.getServletContext().getRealPath("static/");

InputStream is = image.getInputStream();//输入流

BufferedImage bufferedImg = ImageIO.read(is);

int width = bufferedImg.getWidth();//获取图片宽高

int height = bufferedImg.getHeight();

User user = userService.checkUsername(username);

if (user ==null){

if (width<=500 && height<=500){

saveOrUpdateUserImageFile(image,username,destDir);

return "头像ok";

}else{

return "请上传分辨率宽<500,高<500的图片";

}

}else {

return "用户名已被注册";

}

}

public String saveOrUpdateUserImageFile(MultipartFile image,String username,String destDir)

throws IOException {

File imageFolder= new File(destDir);

String imageName = username+".jpg";

File file = new File(imageFolder,imageName);

System.out.println(file);

if(!file.getParentFile().exists())

file.getParentFile().mkdirs();

image.transferTo(file);

BufferedImage img = ImageUtil.change2jpg(file);

ImageIO.write(img, "jpg", file);

return imageName;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值