refactor(file): 优化文件上传和访问路径处理

- 修改 BannerServiceImpl 中图片 URL 的处理逻辑,确保使用相对路径
- 更新 FileServiceImpl 中文件上传方法,返回文件的绝对物理路径
- 在 MusicDTO 中为日期时间字段添加 JsonFormat 注解,统一日期格式
This commit is contained in:
ikmkj
2025-08-10 14:04:56 +08:00
parent d48864b79b
commit 19f41c5e84
3 changed files with 9 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
package com.test.musichouduan.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
@@ -99,6 +100,7 @@ public class MusicDTO {
/**
* 发行日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime releaseDate;
/**
@@ -114,11 +116,13 @@ public class MusicDTO {
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
* 收藏时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime collectTime;
/**

View File

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
import java.util.stream.Collectors;
@@ -70,11 +71,12 @@ public class BannerServiceImpl implements BannerService {
public BannerDTO addBanner(BannerDTO bannerDTO, MultipartFile image) {
// 上传图片
String imageUrl = fileService.uploadImage(image);
String Url = imageUrl.replace(System.getProperty("user.dir") + File.separator + "music-houduan", "").replace(File.separator, "/");
// 创建轮播图实体
Banner banner = new Banner();
BeanUtils.copyProperties(bannerDTO, banner);
banner.setImageUrl(imageUrl); // imageUrl已经是 /upload/images/... 格式
banner.setImageUrl(Url); // imageUrl已经是 /upload/images/... 格式
banner.setStatus(banner.getStatus() != null ? banner.getStatus() : 1);
// 保存轮播图

View File

@@ -194,7 +194,8 @@ public class FileServiceImpl implements FileService {
try {
file.transferTo(targetFile);
// 返回文件的相对访问URL并确保使用正斜杠
return accessPath + directory + "/" + fileName;
// 返回文件的绝对物理路径
return targetFile.getAbsolutePath();
} catch (IOException e) {
logger.error("上传文件失败", e);
throw new BusinessException("上传文件失败");