java后端接收 multipartFile并且将文件保存到本地

484 阅读1分钟
/**
 * 上传图片接口
 *
 * @param multipartFile
 * @return
 */
@Override
public ResponseResult Upload(List<MultipartFile> multipartFile) {
    try {
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();
        // 将日期格式化为字符串,例如:2023-08-18
        String folderName = currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

        // 获取resources目录的绝对路径
        // 获取类路径资源的URL
        Resource resource = new ClassPathResource("upload/images");
        URL url = resource.getURL();
        // 将URL转换为Path对象
        Path uploadPath = Paths.get(url.toURI());

        // 创建日期文件夹路径
        Path folderPath = Paths.get(String.valueOf(uploadPath), folderName);
        File file = folderPath.toFile();

        // 如果文件夹不存在,则创建文件夹
        if (!file.exists()) {
            file.mkdirs();
        }

        for (MultipartFile multipart : multipartFile) {
            //初始化文件名
            UUID uuid = UUID.randomUUID();
            //提取文件后缀
            String[] split = multipart.getOriginalFilename().split("\.");

            String fileName = uuid.toString()+"."+split[1];
            // 构建文件保存路径
            Path filePath = Paths.get(String.valueOf(uploadPath), folderName, fileName);
            // 将文件保存到指定路径
            multipart.transferTo(filePath.toFile());
        }
        // 返回上传成功的响应结果
        return ResponseResult.okResult("File uploaded successfully");
    } catch (Exception e) {
        e.printStackTrace();
        // 返回上传失败的响应结果
        return ResponseResult.errorResult(AppHttpCodeEnum.OPERATION_ERROR, "Failed to upload file");
    }
}