文件上传
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);
}
}