文件上传

2024-11-27  本文已影响0人  xueyueshuai
package com.xys.java_test.controller.test.xys;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;


@Slf4j
@RestController
@RequestMapping("/api/test/xys")
public class XysTestController {


    /**
     * url: /api/test/xys/test1
     */
    @PostMapping("test1")
    public String test1(@RequestParam("file") MultipartFile file) throws IOException {
        // 获取文件后缀
        String fileSuffix = FileUtil.getSuffix(file.getOriginalFilename());
        String dirPath = "upload/" + DateUtil.format(DateUtil.date(), "yyyyMMdd");
        String fileName = DateUtil.format(DateUtil.date(), "HH-mm-ss-SSS") + "-" + RandomUtil.randomInt(1000, 9999);

        // 创建一个实际要存储到的文件
        File targetFile = new File(StrUtil.format("{}/{}.{}", dirPath, fileName, fileSuffix));

        // 进行存储
        FileUtil.writeFromStream(file.getInputStream(), targetFile);

        // return
        return StrUtil.format("https://www.abc.com/{}/{}.{}", dirPath, fileName, fileSuffix);
    }
}

上一篇 下一篇

猜你喜欢

热点阅读