|
|
@@ -97,12 +97,11 @@ public class TbFileServiceImpl extends ServiceImpl<TbFileMapper, TbFile> impleme
|
|
|
try {
|
|
|
// 计算文件 MD5 值
|
|
|
String md5 = calculateMD5(file);
|
|
|
- // 检查是否已存在相同文件(通过 MD5 去重)
|
|
|
+ // 检查是否已存在相同文件(通过MD5去重)
|
|
|
TbFile dbFile = this.getByMd5(md5);
|
|
|
if (null != dbFile) {
|
|
|
// 文件已存在,直接返回已有文件的访问信息(秒传)
|
|
|
ajax.put("url", dbFile.getFileUrl());
|
|
|
- ajax.put("fileName", dbFile.getFileUrl());
|
|
|
ajax.put("newFileName", FileUtils.getName(dbFile.getFileUrl()));
|
|
|
ajax.put("originalFilename", dbFile.getFileName());
|
|
|
// 封面图URL路径(针对视频文件)
|
|
|
@@ -115,7 +114,6 @@ public class TbFileServiceImpl extends ServiceImpl<TbFileMapper, TbFile> impleme
|
|
|
String filePath = RuoYiConfig.getUploadPath();
|
|
|
// 上传文件到服务器并返回新的文件名称
|
|
|
String fileName = FileUploadUtils.upload(filePath, file);
|
|
|
- log.info("上传文件到服务器并返回新的文件名称:{}", fileName);
|
|
|
//获取新的文件子路径
|
|
|
String subFileName= fileName.substring(fileName.indexOf("/upload") + 7);
|
|
|
// 构建完整的文件访问路径
|
|
|
@@ -123,25 +121,24 @@ public class TbFileServiceImpl extends ServiceImpl<TbFileMapper, TbFile> impleme
|
|
|
log.info("上传文件的路径:{},返回的新文件路径:{}", filePath, subFileName);
|
|
|
|
|
|
//生成视频的封面图片文件(该方法内部会执行 FFmpeg 命令并验证)
|
|
|
- /*String thumbnailFilePath = generateThumbnailFilePath(subFileName, file.getOriginalFilename());
|
|
|
+ String thumbnailFilePath = generateThumbnailFilePath(subFileName, file.getOriginalFilename());
|
|
|
String substring = thumbnailFilePath.substring(thumbnailFilePath.lastIndexOf("\\upload"));
|
|
|
substring = "/profile" + substring;
|
|
|
log.info("生成视频的封面图片文件路径:{}", substring);
|
|
|
- substring = substring.replace("\\", "/");*/
|
|
|
+ substring = substring.replace("\\", "/");
|
|
|
|
|
|
ajax.put("url", fileName);
|
|
|
- ajax.put("fileName", fileName);
|
|
|
ajax.put("newFileName", FileUtils.getName(fileName));
|
|
|
ajax.put("originalFilename", file.getOriginalFilename());
|
|
|
// 封面图URL路径(针对视频文件)
|
|
|
- //ajax.put("coverUrl", substring);
|
|
|
+ ajax.put("coverUrl", substring);
|
|
|
|
|
|
// 保存文件记录到数据库
|
|
|
TbFile tbFile = new TbFile();
|
|
|
tbFile.setMd5(md5);
|
|
|
tbFile.setFileName(file.getOriginalFilename());
|
|
|
tbFile.setFileUrl(fileName);
|
|
|
- //tbFile.setCoverUrl(substring);
|
|
|
+ tbFile.setCoverUrl(substring);
|
|
|
this.save(tbFile);
|
|
|
return ajax;
|
|
|
} catch (Exception e) {
|
|
|
@@ -246,8 +243,9 @@ public class TbFileServiceImpl extends ServiceImpl<TbFileMapper, TbFile> impleme
|
|
|
// 3. 执行 FFmpeg 命令生成封面图片
|
|
|
try {
|
|
|
//添加固定前缀(linux环境中需要添加,windows环境中不需要添加)
|
|
|
- String prefix = "/usr/local/java";
|
|
|
- executeFfmpegCommand(prefix+videoPath, prefix+thumbnailPathStr);
|
|
|
+ /*String prefix = "/usr/local/java";
|
|
|
+ executeFfmpegCommand(prefix+videoPath, prefix+thumbnailPathStr);*/
|
|
|
+ executeFfmpegCommand(videoPath, thumbnailPathStr);
|
|
|
log.info("FFmpeg命令执行成功");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
@@ -330,7 +328,6 @@ public class TbFileServiceImpl extends ServiceImpl<TbFileMapper, TbFile> impleme
|
|
|
log.error("FFmpeg 执行失败,输出: {}", output);
|
|
|
throw new VideoThumbnailService.VideoProcessException("FFmpeg 执行失败,退出码: " + exitCode);
|
|
|
}
|
|
|
- log.info("FFmpeg 输出: {}", output);
|
|
|
}
|
|
|
|
|
|
|