文件上传下载(使用hutool工具)

需要引入依赖

<!-- 导入 导出 使用hutool工具类 -->

        <dependency>

            <groupId>cn.hutool</groupId>

            <artifactId>hutool-all</artifactId>

            <version>5.7.20</version>

        </dependency>

        <dependency>

            <groupId>org.apache.poi</groupId>

            <artifactId>poi-ooxml</artifactId>

            <version>4.1.2</version>

        </dependency>

上传(本地文件)

如果不考虑上传到数据库,只是把文件上传到指定路径下

@Value("${files.upload.path}")

    private String fileUploadPath;

    @PostMapping("/upload")

    public String upload(@RequestParam MultipartFile file) throws IOException {

        //获取文件名和后缀

        String originalFilename = file.getOriginalFilename();

        String type = FileUtil.extName(originalFilename);

        //获取文件大小

        long size = file.getSize();

        //先保存到磁盘  引入yml文件配置的路径

        File uploadFile = new File(fileUploadPath);

        //判断文件目录是否存在 如果不存在,就创建一个文件夹

        if(!uploadFile.exists()){

            uploadFile.mkdirs();

        }

        //定义一个文件唯一标识码

        String uuid = IdUtil.fastSimpleUUID();

        //使用文件IO获取到文件

        File uploadFiles = new File(fileUploadPath + uuid + StrUtil.DOT + type);

        //把文件存储到磁盘目录 抛出IO异常

        file.transferTo(uploadFiles);

        return "上传成功";

}

上传(数据库里保存文件属性)

1.新建数据库.

用来保存上传的文件 没有使用md5加密。

2.如果是mybatisPlus,直接生成files的各层。

3.直接写controller层.会返回一个文件的路径。

@Value("${files.upload.path}")

    private String fileUploadPath;

    @Autowired

    private FielsMapper fielsMapper;

    @PostMapping("/uploadToDataBase")

    public String upload(@RequestParam MultipartFile file) throws IOException {

        //获取文件名和后缀

        String originalFilename = file.getOriginalFilename();

        String type = FileUtil.extName(originalFilename);

        //获取文件大小

        long size = file.getSize();

        //先保存到磁盘  引入yml文件配置的路径

        File uploadFile = new File(fileUploadPath);

        //判断文件目录是否存在 如果不存在,就创建一个文件夹

        if(!uploadFile.exists()){

            uploadFile.mkdirs();

        }

        //定义一个文件唯一标识码

        String uuid = IdUtil.fastSimpleUUID();

        String fileUUId = uuid + StrUtil.DOT + type;

        //使用文件IO获取到文件

        File uploadFiles = new File(fileUploadPath + fileUUId);

        //把文件存储到磁盘目录 抛出IO异常

        file.transferTo(uploadFiles);

        //保存到数据库

        //获取文件的路径

        String url = "http://localhost:8980/"+fileUUId;

        //创还能数据库对象

        Fiels fiels = new Fiels();

        fiels.setName(originalFilename);

        fiels.setSize(size/1024);

        fiels.setType(type);

        fiels.setUrl(url);

        fielsMapper.insert(fiels);

        return url;

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值