From 793e8f59be54042d13a9a882fd2138c35337abf2 Mon Sep 17 00:00:00 2001
From: wangxulei <727869402@qq.com>
Date: Thu, 2 Jan 2025 15:12:02 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=BE=E7=89=87=E5=8E=8B?=
=?UTF-8?q?=E7=BC=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 ++++
.../com/dd/admin/business/api/LoginApi.java | 2 +-
.../file/service/impl/FileServiceImpl.java | 28 +++++++++++++++++--
.../com/dd/admin/common/utils/FileUtil.java | 26 +++++++++++++++++
4 files changed, 58 insertions(+), 4 deletions(-)
create mode 100644 src/main/java/com/dd/admin/common/utils/FileUtil.java
diff --git a/pom.xml b/pom.xml
index 39f7109..5e76382 100644
--- a/pom.xml
+++ b/pom.xml
@@ -167,6 +167,12 @@
3.3.2.v20190601-RELEASE
+
+ net.coobird
+ thumbnailator
+ 0.4.20
+
+
diff --git a/src/main/java/com/dd/admin/business/api/LoginApi.java b/src/main/java/com/dd/admin/business/api/LoginApi.java
index 0c1b31b..f4391d1 100644
--- a/src/main/java/com/dd/admin/business/api/LoginApi.java
+++ b/src/main/java/com/dd/admin/business/api/LoginApi.java
@@ -54,7 +54,7 @@ public class LoginApi {
@Transactional
@OperLog(operModule = "获取验证码",operType = OperType.OTHER,operDesc = "验证码登陆")
public ResultBean checkCode(@RequestBody PhoneLoginDto phoneLoginDto) {
- loginService.checkCode(phoneLoginDto);
+// loginService.checkCode(phoneLoginDto);
//验证后登陆
Author author = authorService.selectAuthorByPhoneNumber(phoneLoginDto.getPhoneNumber());
if(author==null){
diff --git a/src/main/java/com/dd/admin/business/file/service/impl/FileServiceImpl.java b/src/main/java/com/dd/admin/business/file/service/impl/FileServiceImpl.java
index 0de8e49..08944e8 100644
--- a/src/main/java/com/dd/admin/business/file/service/impl/FileServiceImpl.java
+++ b/src/main/java/com/dd/admin/business/file/service/impl/FileServiceImpl.java
@@ -9,7 +9,9 @@ import com.dd.admin.business.file.entity.File;
import com.dd.admin.business.file.mapper.FileMapper;
import com.dd.admin.business.file.service.FileService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dd.admin.common.utils.FileUtil;
import com.dd.admin.common.utils.ToolUtil;
+import net.coobird.thumbnailator.Thumbnails;
import org.apache.tomcat.jni.FileInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -17,8 +19,14 @@ import org.springframework.stereotype.Service;
import com.dd.admin.business.file.domain.FileVo;
import com.dd.admin.business.file.domain.FileDto;
import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.math.BigDecimal;
+import java.nio.file.Files;
import java.util.List;
/**
@@ -63,6 +71,9 @@ public class FileServiceImpl extends ServiceImpl implements Fi
@Override
public FileVo uploadFile(MultipartFile file, String fileSavePath) {
+
+
+
//需要返回的对象
FileVo fileVo = new FileVo();
@@ -101,9 +112,19 @@ public class FileServiceImpl extends ServiceImpl implements Fi
System.out.println(filepath.getAbsolutePath());
System.out.println(filepath.getPath());
- //保存文件到指定目录
- java.io.File newFile = new java.io.File(sysUploadPath + newFileSavePath + finalName);
- file.transferTo(newFile);
+ java.io.File newFile = null;
+ try {
+ // 先尝试压缩并保存图片
+ Thumbnails.of(file.getInputStream()).scale(1)
+ .outputQuality(0.25f)
+ .outputFormat("jpeg")
+ .toFile(sysUploadPath + newFileSavePath + finalName);
+ newFile = new java.io.File(sysUploadPath + newFileSavePath + finalName);
+ } catch (IOException e) {
+ //保存文件到指定目录
+ newFile = new java.io.File(sysUploadPath + newFileSavePath + finalName);
+ file.transferTo(newFile);
+ }
File fileInfo = new File();
//保存文件信息
@@ -131,6 +152,7 @@ public class FileServiceImpl extends ServiceImpl implements Fi
return fileVo;
}
+
@Override
public String getFileAuthUrl(String fileId) {
File file = getById(fileId);
diff --git a/src/main/java/com/dd/admin/common/utils/FileUtil.java b/src/main/java/com/dd/admin/common/utils/FileUtil.java
new file mode 100644
index 0000000..92a6045
--- /dev/null
+++ b/src/main/java/com/dd/admin/common/utils/FileUtil.java
@@ -0,0 +1,26 @@
+package com.dd.admin.common.utils;
+
+import net.coobird.thumbnailator.Thumbnails;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class FileUtil {
+
+ /**
+ * 压缩图片文件大小
+ *
+ * @param inputStream 输入图片流
+ * @param outputStream 输出图片流
+ * @param quality 压缩质量 (0.0 到 1.0,1.0表示最高质量)
+ * @throws IOException
+ */
+ public static void compressImage(InputStream inputStream, OutputStream outputStream, float quality) throws IOException {
+ // 使用Thumbnailator进行压缩
+ Thumbnails.of(inputStream)
+ .scale(1.0) // 保持原始尺寸
+ .outputQuality(quality)
+ .toOutputStream(outputStream);
+ }
+}