feat(file): 添加文件路径字段并优化文件上传和删除功能

- 在 ProjectFile 模型中添加 filePath 字段,用于存储文件路径
- 修改文件上传逻辑,保存文件路径信息
- 更新文件删除逻辑,根据文件路径删除文件- 在 application-dev.yml 和 application-pro.yml 中添加 profile 配置项
dev_1.2.1
chenhao 2025-04-22 17:34:46 +08:00
parent 70954e2e95
commit 82778133aa
6 changed files with 19 additions and 5 deletions

View File

@ -1,5 +1,6 @@
package tech.unissense.pms.web.controller.common;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@ -85,6 +86,7 @@ public class CommonController
AjaxResult ajax = AjaxResult.success();
ajax.put("url", url);
ajax.put("fileName", fileName);
ajax.put("filePath", fileName.replace(Constants.RESOURCE_PREFIX, ""));
ajax.put("newFileName", FileUtils.getName(fileName));
ajax.put("originalFilename", file.getOriginalFilename());
return ajax;
@ -106,6 +108,7 @@ public class CommonController
// 上传文件路径
String filePath = RuoYiConfig.getUploadPath();
List<String> urls = new ArrayList<String>();
List<String> filePathList = new ArrayList<String>();
List<String> fileNames = new ArrayList<String>();
List<String> newFileNames = new ArrayList<String>();
List<String> originalFilenames = new ArrayList<String>();
@ -115,6 +118,7 @@ public class CommonController
String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName;
urls.add(url);
filePathList.add(fileName.replace(Constants.RESOURCE_PREFIX, ""));
fileNames.add(fileName);
newFileNames.add(FileUtils.getName(fileName));
originalFilenames.add(file.getOriginalFilename());
@ -122,6 +126,7 @@ public class CommonController
AjaxResult ajax = AjaxResult.success();
ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
ajax.put("filePath", StringUtils.join(filePathList, FILE_DELIMETER));
ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
return ajax;

View File

@ -58,4 +58,6 @@ spring:
merge-sql: true
wall:
config:
multi-statement-allow: true
multi-statement-allow: true
ruoyi:
profile: /home/uploadPath/dev

View File

@ -81,4 +81,6 @@ spring:
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
max-wait: -1ms
ruoyi:
profile: /home/uploadPath/prod

View File

@ -44,6 +44,10 @@ public class ProjectFile {
*/
private String fileUrl;
/**
*
*/
private String filePath;
/**
*
*/

View File

@ -6,6 +6,7 @@ import tech.unissense.pms.business.projectFile.domain.ProjectFile;
import tech.unissense.pms.business.projectFile.mapper.ProjectFileMapper;
import tech.unissense.pms.business.projectFile.service.IProjectFileService;
import org.springframework.stereotype.Service;
import tech.unissense.pms.common.config.RuoYiConfig;
import tech.unissense.pms.common.utils.file.FileUtils;
import javax.annotation.Resource;
@ -61,7 +62,7 @@ public class ProjectFileServiceImpl implements IProjectFileService {
public int deleteById(Integer id) {
ProjectFile projectFile = projectFileMapper.queryById(id);
try {
FileUtils.deleteFile(projectFile.getFileUrl());
FileUtils.deleteFile(RuoYiConfig.getProfile()+projectFile.getFileUrl());
} catch (Exception e) {
log.error("删除文件失败,失败详情:{}", e.getStackTrace());
}

View File

@ -190,10 +190,10 @@
</trim>
</insert>
<insert id="insertBatch">
INSERT INTO pms_project_file( project_id, demand_id, logger_id, file_type, file_url, file_new_name, file_name, create_by, create_time)
INSERT INTO pms_project_file( project_id, demand_id, logger_id, file_type, file_url,file_path, file_new_name, file_name, create_by, create_time)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.projectId},#{item.demandId},#{item.loggerId},#{item.fileType},#{item.fileUrl},#{item.fileNewName},#{item.fileName},#{item.createBy},#{item.createTime})
(#{item.projectId},#{item.demandId},#{item.loggerId},#{item.fileType},#{item.fileUrl},#{item.filePath},#{item.fileNewName},#{item.fileName},#{item.createBy},#{item.createTime})
</foreach>
</insert>