perf: 优化本地文件上传,配置绝对路径
This commit is contained in:
@@ -13,6 +13,7 @@ import cn.hutool.json.JSONUtil;
|
||||
import com.cool.core.enums.QueryModeEnum;
|
||||
import com.cool.core.exception.CoolPreconditions;
|
||||
import com.cool.core.request.CrudOption;
|
||||
import com.cool.core.request.PageResult;
|
||||
import com.cool.core.request.R;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -217,14 +218,14 @@ public abstract class BaseController<S extends BaseService<T>, T extends BaseEnt
|
||||
*
|
||||
* @param page 分页返回数据
|
||||
*/
|
||||
protected Map<String, Object> pageResult(Page page) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
protected PageResult pageResult(Page page) {
|
||||
PageResult result = new PageResult();
|
||||
Map<String, Object> pagination = new HashMap<>();
|
||||
pagination.put("size", page.getPageSize());
|
||||
pagination.put("page", page.getPageNumber());
|
||||
pagination.put("total", page.getTotalRow());
|
||||
result.put("list", page.getRecords());
|
||||
result.put("pagination", pagination);
|
||||
result.setList(page.getRecords());
|
||||
result.setPagination(pagination);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.cool.core.config;
|
||||
|
||||
import com.cool.core.util.PathUtils;
|
||||
import java.io.File;
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -18,6 +20,11 @@ public class LocalFileProperties {
|
||||
private String uploadPath = "assets/public/upload";
|
||||
|
||||
public String getAbsoluteUploadFolder() {
|
||||
return System.getProperty("user.dir") + "/" + uploadPath;
|
||||
if (!PathUtils.isAbsolutePath(uploadPath)) {
|
||||
// 相对路径
|
||||
return System.getProperty("user.dir") + File.separator + uploadPath;
|
||||
}
|
||||
// 绝对路径
|
||||
return uploadPath;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,19 +40,16 @@ public class LocalFileUploadStrategy implements FileUploadStrategy {
|
||||
try {
|
||||
List<String> fileUrls = new ArrayList<>();
|
||||
String baseUrl = localFileProperties.getBaseUrl();
|
||||
// 绝对路径
|
||||
String filePath = System.getProperty("user.dir");
|
||||
String date = DateUtil.format(new Date(),
|
||||
DatePattern.PURE_DATE_PATTERN);
|
||||
String relativePath =
|
||||
File.separator + localFileProperties.getUploadPath() + File.separator + date;
|
||||
|
||||
FileUtil.mkdir(filePath + relativePath);
|
||||
String absoluteUploadFolder = localFileProperties.getAbsoluteUploadFolder();
|
||||
String fullPath = absoluteUploadFolder + File.separator + date;
|
||||
FileUtil.mkdir(fullPath);
|
||||
for (MultipartFile file : files) {
|
||||
// 保存文件
|
||||
String fileName = StrUtil.uuid().replaceAll("-", "") + getExtensionName(
|
||||
Objects.requireNonNull(file.getOriginalFilename()));
|
||||
file.transferTo(new File(filePath + File.separator + relativePath
|
||||
file.transferTo(new File(fullPath
|
||||
+ File.separator + fileName));
|
||||
fileUrls.add(baseUrl + File.separator + date + File.separator + fileName);
|
||||
}
|
||||
|
||||
11
src/main/java/com/cool/core/request/PageResult.java
Normal file
11
src/main/java/com/cool/core/request/PageResult.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.cool.core.request;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PageResult {
|
||||
private List<?> list;
|
||||
private Map<String, Object> pagination;
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
tip: 凡购买了【商城项目】和【Ai流程编排+知识库项目】这两个Java版本插件的用户,可向cool-admin-java版本开发者提供支付记录,免费获取[cool-admin-java-plus](https://gitee.com/hlc4417/cool-admin-java-plus)版本。
|
||||
______ ___ ___ _____ _ ______ ____ ____ _____ ____ _____
|
||||
.' ___ | .' `. .' `.|_ _| V7.x / \ |_ _ `.|_ \ / _||_ _||_ \|_ _|
|
||||
/ .' \_|/ .-. \/ .-. \ | | ______ / _ \ | | `. \ | \/ | | | | \ | |
|
||||
|
||||
Reference in New Issue
Block a user