vue-springboot实现文件上传和下载(项目根路径篇)

如果你满足以下条件,则可以继续往下看:

  • 前端使用vue并且想使用url访问图片资源
  • 后端使用springboot并且想把图片存储在项目根路径下

后端配置

需要创建配置文件,允许通过url直接访问文件资源

package io.renren;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebAppConfigurer implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("/resource/**").addResourceLocations("file:/d:/code/school/api/resource/");   //windows
        registry.addResourceHandler("/resource/**").addResourceLocations("file:/root/resource/"); //linux
    }
}

 下面是上传文件的代码


    @RequestMapping(value = "/uploadFile")
    public R uploadFile(MultipartFile file, HttpServletRequest request) {
        if (file.isEmpty()) {
            return R.error("头像文件为空");
        }
        String uuid;
        try{
            //上传
            byte[] bytes = file.getBytes();
            String fileSuffix=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
            uuid = UUID.randomUUID().toString()+fileSuffix;
            Path path = Paths.get("resource/" + uuid);
            path.toFile().getParentFile().mkdirs();
            path.toFile().createNewFile();
            Files.write(path, bytes);
        }catch(Exception e) {
            e.printStackTrace();
            return R.error("上传失败");
        }
        return R.ok("上传成功").put("address", uuid);
    }

 

浏览器访问

#示例
localhost:8001/admin/resource/9d1f3a13-5eb0-4b24-8a8c-ff20bb07ec31.jfif

#格式
后端接口地址/resource/xxxx.xx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值