Browse Source

新增指定目录的文件上传方法

dev-V1.0.1
ganhao 5 months ago
parent
commit
23f6b2ce5b
  1. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/file/MimeTypeUtils.java
  2. 14
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/common/FileController.java
  3. 9
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/FileUploadApi.java
  4. 24
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/impl/FileUploadApiImpl.java

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/file/MimeTypeUtils.java

@ -24,6 +24,8 @@ public class MimeTypeUtils
public static final String[] MEDIA_EXTENSION = { "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg",
"asf", "rm", "rmvb" };
public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb", "mkv", "wmv", "flv" };
public static final String[] DEFAULT_ALLOWED_EXTENSION = {
// 图片
"bmp", "gif", "jpg", "jpeg", "png",

14
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/common/FileController.java

@ -39,4 +39,18 @@ public class FileController extends BaseController {
return R.ok("上传成功", filePath);
}
/**
* 上传文件(支持指定上传目录)
*
* @param file 文件
* @param dir 上传目录(相对路径,如:images、videos、documents等,默认为根目录)
*/
@Log(title = "文件上传", businessType = BusinessType.INSERT)
@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<String> uploadFile(@RequestPart("file") MultipartFile file, String dir) {
String filePath = fileUploadApi.uploadWithType(file, dir);
return R.ok("上传成功", filePath);
}
}

9
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/FileUploadApi.java

@ -25,4 +25,13 @@ public interface FileUploadApi {
*/
String upload(MultipartFile file);
/**
* 上传文件(指定上传目录)
*
* @param file 上传的文件
* @param dir 上传目录(相对路径,如:images、videos、documents等)
* @return 文件路径
*/
String uploadWithType(MultipartFile file, String dir);
}

24
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/impl/FileUploadApiImpl.java

@ -3,6 +3,7 @@ package com.zdxt.enforcementcode.service.common.impl;
import com.zdxt.enforcementcode.common.config.RuoYiConfig;
import com.zdxt.enforcementcode.common.util.file.FileUploadUtils;
import com.zdxt.enforcementcode.common.util.file.MimeTypeUtils;
import com.zdxt.enforcementcode.service.common.FileUploadApi;
import org.dromara.common.core.exception.base.BaseException;
import org.springframework.beans.factory.annotation.Autowired;
@ -22,6 +23,7 @@ public class FileUploadApiImpl implements FileUploadApi {
@Autowired
RuoYiConfig ruoYiConfig;
@Override
public String upload(MultipartFile file) {
String filePath = RuoYiConfig.getUploadPath();
@ -32,4 +34,26 @@ public class FileUploadApiImpl implements FileUploadApi {
}
}
@Override
public String uploadWithType(MultipartFile file, String dir) {
try {
// 构建完整的上传路径:基础路径 + 指定目录
String basePath = RuoYiConfig.getUploadPath();
String uploadPath;
if (dir != null && !dir.isEmpty()) {
// 去除目录前后的斜杠,避免路径问题
String cleanDir = dir.trim().replaceAll("^/+|/+$", "");
uploadPath = basePath + "/" + cleanDir;
} else {
// 如果未指定目录,使用默认上传路径
uploadPath = basePath;
}
return FileUploadUtils.upload(uploadPath, file);
} catch (Exception e) {
throw new BaseException("上传失败: " + e.getMessage());
}
}
}

Loading…
Cancel
Save