From 2f9b827dea5b3415f1bfd060b786f9467559712f Mon Sep 17 00:00:00 2001
From: pyx <3317187936@qq.com>
Date: Fri, 7 Feb 2025 20:33:21 +0800
Subject: [PATCH] =?UTF-8?q?2025/2/7-20:33-=E5=90=8E=E7=AB=AF=E6=96=87?=
=?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
HomeWork-java/pom.xml | 12 ++++
.../template/action/ToolTemplateAction.java | 29 ++++++--
.../template/aspects/LogOperateAspect.java | 2 +-
.../template/service/FileUploadService.java | 7 ++
.../service/impl/FileUploadServiceImpl.java | 68 +++++++++++++++++++
.../target/classes/config.properties | 8 ++-
HomeWork-java/tempResources/config.properties | 8 ++-
7 files changed, 126 insertions(+), 8 deletions(-)
create mode 100644 HomeWork-java/src/com/wetoband/template/service/FileUploadService.java
create mode 100644 HomeWork-java/src/com/wetoband/template/service/impl/FileUploadServiceImpl.java
diff --git a/HomeWork-java/pom.xml b/HomeWork-java/pom.xml
index 686be2e..b577699 100644
--- a/HomeWork-java/pom.xml
+++ b/HomeWork-java/pom.xml
@@ -263,6 +263,14 @@
+
+
+ io.minio
+ minio
+ 8.5.2
+
+
+
src
@@ -307,6 +315,10 @@
${project.build.resourceDirectory}/css
css
+
+
+
+
diff --git a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java
index b26eb64..01690e3 100644
--- a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java
+++ b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java
@@ -11,10 +11,7 @@ import com.wetoband.template.entity.Question;
import com.wetoband.template.entity.User;
import com.wetoband.template.entity.WrongQuestion;
-import com.wetoband.template.service.HomeWorkService;
-import com.wetoband.template.service.QuestionService;
-import com.wetoband.template.service.UserService;
-import com.wetoband.template.service.WrongQuestionService;
+import com.wetoband.template.service.*;
import com.wetoband.template.service.impl.HomeWorkServiceImpl;
import com.wetoband.template.service.impl.QuestionServiceImpl;
import com.wetoband.template.service.impl.UserServiceImpl;
@@ -24,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.sql.Connection;
@@ -47,6 +45,8 @@ public class ToolTemplateAction extends ActionToolBase {
QuestionService questionService=IOC.getBean(QuestionServiceImpl.class);
UserService userService=IOC.getBean(UserServiceImpl.class);
+ FileUploadService fileUploadService= IOC.getBean(FileUploadService.class);
+
@Action
public R get(HttpServletRequest request ) throws Exception {
@@ -118,7 +118,7 @@ public class ToolTemplateAction extends ActionToolBase {
Date submitTimeDate = sdf.parse(submitTimeStr);
String text = request.getParameter("text");
homeWorkService.submitHomework(studentId,homeworkId,submitTimeDate,text);
- return R.ok().put("data",null);
+ return R.ok().message("请求成功");
}
@@ -138,6 +138,17 @@ public class ToolTemplateAction extends ActionToolBase {
return R.ok().message("请求成功");
}
+
+ //文件上传miniIo
+ @Action
+ public R fileUploadService(@RequestParam(value = "file") MultipartFile multipartFile) {//前端要传一个名字叫 file 的参数
+ String fileUrl = fileUploadService.fileUpload(multipartFile) ;
+ return R.ok().put("data",fileUrl);//返回一个fileurl给前端
+ }
+
+
+
+
public static String runTool(String toolId, String action, Map map, String bandId) {
HashMap params = new HashMap<>();
params.put("toolID", toolId);
@@ -153,4 +164,12 @@ public class ToolTemplateAction extends ActionToolBase {
.execute().sync();
return response.body();
}
+
+
+
+
+
+
+
+
}
diff --git a/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java b/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java
index 09cf44c..69a4edd 100644
--- a/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java
+++ b/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java
@@ -39,7 +39,7 @@ public class LogOperateAspect {
*/
@Pointcut("@annotation(com.wetoband.template.annotation.LogOperate)")
// @Pointcut("execution (* com.blp.service..*.*(..))")
- public void logOperateAnnotation() {}
+
public void logOperateAnnotation(){
}
diff --git a/HomeWork-java/src/com/wetoband/template/service/FileUploadService.java b/HomeWork-java/src/com/wetoband/template/service/FileUploadService.java
new file mode 100644
index 0000000..81f791f
--- /dev/null
+++ b/HomeWork-java/src/com/wetoband/template/service/FileUploadService.java
@@ -0,0 +1,7 @@
+package com.wetoband.template.service;
+
+import org.springframework.web.multipart.MultipartFile;
+
+public interface FileUploadService {
+ String fileUpload(MultipartFile multipartFile);
+}
diff --git a/HomeWork-java/src/com/wetoband/template/service/impl/FileUploadServiceImpl.java b/HomeWork-java/src/com/wetoband/template/service/impl/FileUploadServiceImpl.java
new file mode 100644
index 0000000..6bbafaa
--- /dev/null
+++ b/HomeWork-java/src/com/wetoband/template/service/impl/FileUploadServiceImpl.java
@@ -0,0 +1,68 @@
+package com.wetoband.template.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.wetoband.template.service.FileUploadService;
+
+import io.minio.BucketExistsArgs;
+import io.minio.MakeBucketArgs;
+import io.minio.MinioClient;
+import io.minio.PutObjectArgs;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Date;
+import java.util.UUID;
+
+@Service
+public class FileUploadServiceImpl implements FileUploadService {
+
+ @Override
+ public String fileUpload(MultipartFile multipartFile) {
+
+ try {
+ String BucketName = "homeworktool";//存储桶名称
+
+ String endpoint = "http://8.138.182.34:9000";//文件服务器地址
+
+ //文件服务器用户名和密码
+ String accessKey = "minio-username";
+
+ String serectKey = "minio-password";
+
+ // 创建一个Minio的客户端对象
+ MinioClient minioClient = MinioClient.builder()
+ .endpoint(endpoint)//文件服务器地址
+ .credentials(accessKey,serectKey)//文件服务器用户名和密码
+ .build();
+
+ // 判断桶是否存在
+ boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(BucketName).build());
+ if (!found) { // 如果不存在,那么此时就创建一个新的桶
+ minioClient.makeBucket(MakeBucketArgs.builder().bucket(BucketName).build());
+ } else { // 如果存在打印信息
+ System.out.println("Bucket: "+BucketName+" already exists.");
+ }
+
+ // 设置存储对象名称,这里为了防止文件名冲突所以要加上独一无二的标识来做出区分
+ //而且还通过日期来进行文件夹的划分
+ String dateDir = DateUtil.format(new Date(), "yyyyMMdd");
+ String uuid = UUID.randomUUID().toString().replace("-", "");
+ //示例文件名:20250201/443e1e772bef482c95be28704bec58a901.jpg
+ String fileName = dateDir+"/"+uuid+multipartFile.getOriginalFilename();//这里得到最终的文件名
+ System.out.println(fileName);
+
+ PutObjectArgs putObjectArgs = PutObjectArgs.builder()
+ .bucket(BucketName)
+ .stream(multipartFile.getInputStream(), multipartFile.getSize(), -1)
+ .object(fileName)
+ .build();
+ minioClient.putObject(putObjectArgs) ;
+
+ return endpoint + "/" + BucketName + "/" + fileName ;
+
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/HomeWork-java/target/classes/config.properties b/HomeWork-java/target/classes/config.properties
index c9af6a3..bb52fb7 100644
--- a/HomeWork-java/target/classes/config.properties
+++ b/HomeWork-java/target/classes/config.properties
@@ -36,4 +36,10 @@ MONGODB_PASSWORD=root
SWAP_VALUE_MAX_SIZE=0
SWAP_VALUE_SERVER_PORT=6666
GET_SWAP_VALUE_IP=192.168.10.254
-GET_SWAP_VALUE_PORT=6666
\ No newline at end of file
+GET_SWAP_VALUE_PORT=6666
+
+
+
+
+
+
diff --git a/HomeWork-java/tempResources/config.properties b/HomeWork-java/tempResources/config.properties
index c9af6a3..bb52fb7 100644
--- a/HomeWork-java/tempResources/config.properties
+++ b/HomeWork-java/tempResources/config.properties
@@ -36,4 +36,10 @@ MONGODB_PASSWORD=root
SWAP_VALUE_MAX_SIZE=0
SWAP_VALUE_SERVER_PORT=6666
GET_SWAP_VALUE_IP=192.168.10.254
-GET_SWAP_VALUE_PORT=6666
\ No newline at end of file
+GET_SWAP_VALUE_PORT=6666
+
+
+
+
+
+
--
Gitee