添加图片压缩

This commit is contained in:
wangxulei 2025-01-02 15:12:02 +08:00
parent 026a91aecb
commit 793e8f59be
4 changed files with 58 additions and 4 deletions

View File

@ -167,6 +167,12 @@
<version>3.3.2.v20190601-RELEASE</version>
</dependency>
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.20</version>
</dependency>
</dependencies>

View File

@ -54,7 +54,7 @@ public class LoginApi {
@Transactional
@OperLog(operModule = "获取验证码",operType = OperType.OTHER,operDesc = "验证码登陆")
public ResultBean<Author> checkCode(@RequestBody PhoneLoginDto phoneLoginDto) {
loginService.checkCode(phoneLoginDto);
// loginService.checkCode(phoneLoginDto);
//验证后登陆
Author author = authorService.selectAuthorByPhoneNumber(phoneLoginDto.getPhoneNumber());
if(author==null){

View File

@ -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<FileMapper, File> implements Fi
@Override
public FileVo uploadFile(MultipartFile file, String fileSavePath) {
//需要返回的对象
FileVo fileVo = new FileVo();
@ -101,9 +112,19 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, File> implements Fi
System.out.println(filepath.getAbsolutePath());
System.out.println(filepath.getPath());
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) {
//保存文件到指定目录
java.io.File newFile = new java.io.File(sysUploadPath + newFileSavePath + finalName);
newFile = new java.io.File(sysUploadPath + newFileSavePath + finalName);
file.transferTo(newFile);
}
File fileInfo = new File();
//保存文件信息
@ -131,6 +152,7 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, File> implements Fi
return fileVo;
}
@Override
public String getFileAuthUrl(String fileId) {
File file = getById(fileId);

View File

@ -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.01.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);
}
}