SpringBoot本地图片回显

1、配置类

@Configuration
public class MyBlogWebMvcConfigurer implements WebMvcConfigurer {


    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
	//配置映射路径,/**是当前文件夹以及子文件夹
  	registry.addResourceHandler("/images/**").addResourceLocations("file:F://图片//");
    }
}

2、工具类:动态获取ip端口以及服务名Content-Path(阿里云获取不到公网IP)

@Component
public class ImgUtils {

    @Autowired
    Environment environment;


    public String getUrl() {
        String hostIp = getHostIp();
        String port = environment.getProperty("server.port");
        String contextPath = environment.getProperty("server.servlet.context-path");
        String url = "http://"+hostIp+":"+port+"/"+contextPath;
        return url;
    }


    public String getHostIp() {
        InetAddress localHost = null;
        try {
            localHost = InetAddress.getLocalHost();
        } catch (UnknownHostException e) {
        }
        String ip = localHost.getHostAddress();  // 返回格式为:xxx.xxx.xxx

        return ip;
    }
}

Controller层:

@RestController
@RequestMapping("/file")
public class FileController {

    @Autowired
    private ImgUtils imgUtils;


    @PostMapping("/upload")
    public Map<String,String> upload(MultipartFile fileName){


        Map<String,String> resultMap = new HashMap<>();

        try {


            String originalFilename = fileName.getOriginalFilename();

            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));

            originalFilename = UUID.randomUUID().toString()+suffix;

            File createFile = new File("F:\\图片\\");
            if (!createFile.exists()){
                createFile.mkdirs();
            }

            File saveFile = new File(createFile,originalFilename);

            fileName.transferTo(saveFile);

            String url = imgUtils.getUrl();

            String filename = url+"/images/" + originalFilename;

            resultMap.put("msg","成功");
            resultMap.put("url",filename);
            return resultMap;
        } catch (Exception e) {
            e.printStackTrace();
        }
        resultMap.put("msg","失败");
        return resultMap;
    }
}

返回url示例:

// images是配置映射地址,通过以下路径可以访问图片资源,以及图片回显
http://IP:端口/服务名路径/images/ca512d95-c500-43ed-8db7-67abb3550aff.jpg
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值