diff --git a/cutejava-front/src/store/getters.js b/cutejava-front/src/store/getters.js
index 3c50443e..4186e803 100644
--- a/cutejava-front/src/store/getters.js
+++ b/cutejava-front/src/store/getters.js
@@ -3,8 +3,6 @@
* @type {any}
*/
const getters = {
- deployUploadApi: state => state.api.deployUploadApi,
- databaseUploadApi: state => state.api.databaseUploadApi,
size: state => state.app.size,
sidebar: state => state.app.sidebar,
device: state => state.app.device,
@@ -24,6 +22,9 @@ const getters = {
swaggerApi: state => state.api.swaggerApi,
websocketApi: state => state.api.websocketApi,
sidebarRouters: state => state.permission.sidebarRouters,
- statusConst: state => state.pipeline.statusConst
+ statusConst: state => state.pipeline.statusConst,
+ // 上传组件专用
+ fileUploadApplicationApi: state => state.api.fileUploadApplicationApi,
+ ossUploadApplicationApi: state => state.api.ossUploadApplicationApi
}
export default getters
diff --git a/cutejava-front/src/store/modules/api.js b/cutejava-front/src/store/modules/api.js
index 8e981d6a..ba8a4329 100644
--- a/cutejava-front/src/store/modules/api.js
+++ b/cutejava-front/src/store/modules/api.js
@@ -16,6 +16,9 @@ const api = {
fileUploadApi: baseUrl + '/api/localStorage/uploadFile',
// oss上传
ossUploadApi: baseUrl + '/api/ossStorage/uploadFile',
+ // 上传组件专用
+ fileUploadApplicationApi: baseUrl + '/api/component/CuteFileUpload/uploadLocal',
+ ossUploadApplicationApi: baseUrl + '/api/component/CuteFileUpload/uploadOSS',
// baseUrl,
baseApi: baseUrl
}
diff --git a/cutejava-front/src/views/components/business/CuteFileDragUpload.vue b/cutejava-front/src/views/components/business/CuteFileDragUpload.vue
index c7c5644f..fea00adc 100644
--- a/cutejava-front/src/views/components/business/CuteFileDragUpload.vue
+++ b/cutejava-front/src/views/components/business/CuteFileDragUpload.vue
@@ -14,7 +14,7 @@
:headers="headers"
:on-success="handleSuccess"
:on-error="handleError"
- :action="ossUploadApi"
+ :action="mode === 'oss' ? ossUploadApplicationApi: fileUploadApplicationApi"
>
将文件拖到此处,或点击上传
@@ -36,7 +36,7 @@ export default {
default: null
},
/**
- * 上传方式:server、oss
+ * 上传方式:local、oss
*/
mode: {
type: String,
@@ -52,7 +52,8 @@ export default {
computed: {
...mapGetters([
'baseApi',
- 'ossUploadApi'
+ 'fileUploadApplicationApi',
+ 'ossUploadApplicationApi'
])
},
methods: {
diff --git a/cutejava-front/src/views/components/business/CuteFileUpload.vue b/cutejava-front/src/views/components/business/CuteFileUpload.vue
index 31146b14..cf12cf3e 100644
--- a/cutejava-front/src/views/components/business/CuteFileUpload.vue
+++ b/cutejava-front/src/views/components/business/CuteFileUpload.vue
@@ -13,7 +13,7 @@
:headers="headers"
:on-success="handleSuccess"
:on-error="handleError"
- :action="ossUploadApi"
+ :action="mode === 'oss' ? ossUploadApplicationApi: fileUploadApplicationApi"
>
点击上传
只能上传不超过100MB的文件
@@ -34,7 +34,7 @@ export default {
default: null
},
/**
- * 上传方式:server、oss
+ * 上传方式:local、oss
*/
mode: {
type: String,
@@ -50,7 +50,8 @@ export default {
computed: {
...mapGetters([
'baseApi',
- 'ossUploadApi'
+ 'fileUploadApplicationApi',
+ 'ossUploadApplicationApi'
])
},
methods: {
diff --git a/cutejava-front/src/views/componentsDemo/CuteFileDragUploadDemo.vue b/cutejava-front/src/views/componentsDemo/CuteFileDragUploadDemo.vue
index b04554cd..0eec3ce5 100644
--- a/cutejava-front/src/views/componentsDemo/CuteFileDragUploadDemo.vue
+++ b/cutejava-front/src/views/componentsDemo/CuteFileDragUploadDemo.vue
@@ -11,7 +11,7 @@
-
+
提 交
diff --git a/cutejava-front/src/views/componentsDemo/CuteFileUploadDemo.vue b/cutejava-front/src/views/componentsDemo/CuteFileUploadDemo.vue
index 595c29f3..d3934af0 100644
--- a/cutejava-front/src/views/componentsDemo/CuteFileUploadDemo.vue
+++ b/cutejava-front/src/views/componentsDemo/CuteFileUploadDemo.vue
@@ -11,7 +11,7 @@
-
+
提 交
diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/CuteFileUploadApi.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/CuteFileUploadApi.java
new file mode 100644
index 00000000..47e01d96
--- /dev/null
+++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/CuteFileUploadApi.java
@@ -0,0 +1,41 @@
+package cn.odboy.system.application;
+
+import cn.odboy.system.framework.operalog.OperationLog;
+import cn.odboy.system.service.SystemLocalStorageService;
+import cn.odboy.system.service.SystemOssStorageService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+@RestController
+@Api(tags = "系统组件:CuteFileUpload")
+@RequestMapping("/api/component/CuteFileUpload")
+public class CuteFileUploadApi {
+
+ @Autowired
+ private SystemLocalStorageService systemLocalStorageService;
+ @Autowired
+ private SystemOssStorageService systemOssStorageService;
+
+ @OperationLog
+ @ApiOperation("上传文件到服务器本地")
+ @PostMapping(value = "/uploadLocal")
+ public ResponseEntity uploadLocal(@RequestParam("file") MultipartFile file) {
+ String fileUrl = systemLocalStorageService.uploadLocal(file);
+ return ResponseEntity.ok(fileUrl);
+ }
+
+ @OperationLog
+ @ApiOperation("上传文件到OSS")
+ @PostMapping(value = "/uploadOSS")
+ public ResponseEntity uploadOSS(@RequestParam("file") MultipartFile file) {
+ String fileUrl = systemOssStorageService.uploadFile(file);
+ return ResponseEntity.ok(fileUrl);
+ }
+}
diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java
index f81ede44..344016f7 100644
--- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java
+++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java
@@ -22,6 +22,7 @@ import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.util.StrUtil;
import cn.odboy.base.KitPageResult;
import cn.odboy.constant.FileTypeEnum;
+import cn.odboy.framework.context.KitRequestHolder;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import cn.odboy.framework.server.core.KitFileLocalUploadHelper;
@@ -41,6 +42,7 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.Date;
@@ -194,4 +196,40 @@ public class SystemLocalStorageService {
}
wrapper.orderByDesc(SystemLocalStorageTb::getId);
}
+
+ @Transactional(rollbackFor = Exception.class)
+ public String uploadLocal(MultipartFile multipartFile) {
+ long size = multipartFile.getSize();
+ KitFileUtil.checkSize(properties.getOss().getMaxSize(), size);
+ String suffix = KitFileUtil.getSuffix(multipartFile.getOriginalFilename());
+ String type = KitFileUtil.getFileType(suffix);
+ String uploadDateStr = DateUtil.format(new Date(), DatePattern.PURE_DATE_FORMAT);
+ File file = KitFileUtil.upload(multipartFile, fileUploadPathHelper.getPath() + uploadDateStr + File.separator);
+ if (file == null) {
+ throw new BadRequestException("上传失败");
+ }
+ try {
+ String formatSize = KitFileUtil.getSize(size);
+ String prefixName = KitFileUtil.getPrefix(multipartFile.getOriginalFilename(), null);
+ SystemLocalStorageTb localStorage = new SystemLocalStorageTb();
+ localStorage.setRealName(file.getName());
+ localStorage.setName(prefixName);
+ localStorage.setSuffix(suffix);
+ localStorage.setPath(file.getPath());
+ localStorage.setType(type);
+ localStorage.setSize(formatSize);
+ localStorage.setDateGroup(uploadDateStr);
+ systemLocalStorageMapper.insert(localStorage);
+ // 构建上传路径 /file/20260117/odboycn-20260117055246428.png
+ HttpServletRequest httpServletRequest = KitRequestHolder.getHttpServletRequest();
+ StringBuffer requestURL = httpServletRequest.getRequestURL();
+ String[] splits = requestURL.toString().split("/api/component/CuteFileUpload");
+ String requestAddress = splits[0];
+ return String.format("%s/file/%s/%s", requestAddress, uploadDateStr, localStorage.getRealName());
+ } catch (Exception e) {
+ log.error("上传文件失败", e);
+ KitFileUtil.del(file);
+ throw e;
+ }
+ }
}