提交 047a7335 authored 作者: yucaiwei's avatar yucaiwei

--no commit message

上级 ce179a9f
......@@ -106,21 +106,6 @@ public class FileController {
return entity;
}
@ApiOperation(value = "图片上传 返回文件详细信息及缩略图")
@RequestMapping(value = "/upload/img/info", method = RequestMethod.POST)
public FileInfo uploadImg(@RequestParam("file") MultipartFile file, @ApiParam("类型,自定义尺寸传入1 其余不传")String type) {
FileInfo entity = service.uploadFile(file, type);
if (!service.insert(entity)) {
throw new BaseException("上传失败!");
}
FileInfo fileInfo = service.uploadFile(file);
fileInfo.setFileName(entity.getFileName());
if(!service.insert(fileInfo)){
throw new BaseException("上传失败!");
}
return fileInfo;
}
// 处理文件上传
@ApiOperation(value = "文件上传 视频")
@RequestMapping(value = "/upload/video", method = RequestMethod.POST)
......
......@@ -9,5 +9,4 @@ import com.zrqx.core.service.BaseService;
public interface FileService extends BaseService<FileInfo, Integer>{
public FileInfo uploadFile(MultipartFile file);
public FileInfo createFile(CreatreQRCodeForm form);
public FileInfo uploadFile(MultipartFile file, String type);
}
......@@ -15,7 +15,6 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.exception.BusinessValidateException;
import com.zrqx.core.form.file.CreatreQRCodeForm;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.file.FileInfo;
......@@ -24,7 +23,6 @@ import com.zrqx.core.util.datatype.UUIDUtil;
import com.zrqx.core.util.erweima.QrCodeCreateUtil;
import com.zrqx.file.mapper.FileMapper;
import com.zrqx.file.service.FileService;
import com.zrqx.file.util.CompressionUtil;
@Service
public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implements FileService {
......@@ -103,66 +101,6 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
}
@Override
public FileInfo uploadFile(MultipartFile file, String type) {
String contentType = file.getContentType();
// 获取文件名
String fileName = file.getOriginalFilename();
// 获取文件的后缀名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
// 解决中文问题,liunx下中文路径,图片显示问题
String uuid = UUIDUtil.getUUID();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String path = sdf.format(new Date());
String filePath = rootPath + path + "/";
File targetFile = new File(filePath);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
filePath = filePath + uuid + suffixName;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
FileInfo entity = new FileInfo();
try {
fos = new FileOutputStream(filePath);
bos = new BufferedOutputStream(fos);
bos.write(file.getBytes());
entity.setFileName(uuid);
entity.setOriginalFileName(fileName);
entity.setSuffixName(suffixName);
entity.setPath(path + "/");
entity.setContentType(contentType);
entity.setSize(file.getSize());
entity.setCreateTime(new Date());
} catch (Exception e) {
logger.error("上传异常:" + e);
e.printStackTrace();
} finally {
try {
if (null != fos)
fos.flush();
if (null != bos)
bos.close();
} catch (IOException e) {
}
}
if(suffixName.equals(suffix1) || suffixName.equals(suffix2)){
String distPath = rootPath + "/reduce/" + path + "/" + entity.getFileName() + entity.getSuffixName();
try {
if(type == null){
CompressionUtil.createThumbnailToThread(file, distPath, quality);
} else {
CompressionUtil.createThumbnailToThread(file, distPath, width, height, quality);
}
entity.setPath("/reduce/" + path);
} catch (Exception e) {
e.printStackTrace();
}
}
return entity;
}
@Override
public FileInfo createFile(CreatreQRCodeForm form) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
......
package com.zrqx.file.util;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import javax.imageio.ImageIO;
import org.springframework.web.multipart.MultipartFile;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.zrqx.core.exception.BaseException;
public class CompressionUtil {
/**
* 多线程生成缩略图
* @param file 源文件
* @param dist 目标路径
* @param width 目标宽
* @param height 目标高
* @param quality 目标质量
* @author lw
* @date: 2019年3月29日 上午10:22:25
*/
public static void createThumbnailToThread(File file, String dist, float width, float height, float quality) {
try {
BufferedImage image = null;
BufferedImage bfImage = null;
FileOutputStream os = null;
/**
* 设置图片路径
*/
String newPath = dist;
dist = dist.substring(0, dist.lastIndexOf("/"));
File targetFile = new File(dist);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
InputStream in = new FileInputStream(file);
image = ImageIO.read(in);
// 获得缩放的比例
double ratio = 1.0;
// 判断如果高、宽都不大于设定值,则不处理
if (image.getHeight() > height || image.getWidth() > width) {
if (image.getHeight() > image.getWidth()) {
ratio = height / image.getHeight();
} else {
ratio = width / image.getWidth();
}
}
// 计算新的图面宽度和高度
int newWidth = (int) (image.getWidth() * ratio);
int newHeight = (int) (image.getHeight() * ratio);
bfImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
bfImage.getGraphics().drawImage(image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH), 0, 0, null);
os = new FileOutputStream(newPath);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(bfImage);
jep.setQuality(quality, true);
encoder.encode(bfImage, jep);
os.flush();
os.close();
// }
} catch (Exception e) {
System.out.println("创建缩略图发生异常" + e.getMessage());
e.printStackTrace();
}
}
/**
* 多线程生成缩略图(按原长宽)
* @param file 源文件
* @param dist 目标路径
* @param quality 目标质量
* @author lw
* @date: 2019年3月29日 上午10:22:25
*/
public static void createThumbnailToThread(File file, String dist, float quality) {
try {
BufferedImage image = null;
BufferedImage bfImage = null;
FileOutputStream os = null;
/**
* 设置图片路径
*/
String newPath = dist;
dist = dist.substring(0, dist.lastIndexOf("/"));
File targetFile = new File(dist);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
InputStream in = new FileInputStream(file);
image = ImageIO.read(in);
// 获得缩放的比例
double ratio = 1.0;
// 计算新的图面宽度和高度
int newWidth = (int) (image.getWidth() * ratio);
int newHeight = (int) (image.getHeight() * ratio);
bfImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
bfImage.getGraphics().drawImage(image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH), 0, 0, null);
os = new FileOutputStream(newPath);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(bfImage);
jep.setQuality(quality, true);
encoder.encode(bfImage, jep);
os.flush();
os.close();
} catch (Exception e) {
System.out.println("创建缩略图发生异常" + e.getMessage());
e.printStackTrace();
}
}
public static void createThumbnailToThread(MultipartFile file, String dist, float width, float height, float quality) throws BaseException {
try {
BufferedImage image = null;
BufferedImage bfImage = null;
FileOutputStream os = null;
/**
* 设置图片路径
*/
String newPath = dist;
dist = dist.substring(0, dist.lastIndexOf("/"));
File targetFile = new File(dist);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
InputStream in = file.getInputStream();
image = ImageIO.read(in);
// 获得缩放的比例
double ratio = 1.0;
// 判断如果高、宽都不大于设定值,则不处理
if (image.getHeight() > height || image.getWidth() > width) {
if (image.getHeight() > image.getWidth()) {
ratio = height / image.getHeight();
} else {
ratio = width / image.getWidth();
}
}
// 计算新的图面宽度和高度
int newWidth = (int) (image.getWidth() * ratio);
int newHeight = (int) (image.getHeight() * ratio);
bfImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
bfImage.getGraphics().drawImage(image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH), 0, 0, null);
os = new FileOutputStream(newPath);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(bfImage);
jep.setQuality(quality, true);
encoder.encode(bfImage, jep);
os.flush();
os.close();
// }
} catch (Exception e) {
System.out.println("创建缩略图发生异常" + e.getMessage());
e.printStackTrace();
throw new BaseException("图片压缩异常", e);
}
}
public static void createThumbnailToThread(MultipartFile file, String dist, float quality) throws BaseException{
try {
BufferedImage image = null;
BufferedImage bfImage = null;
FileOutputStream os = null;
/**
* 设置图片路径
*/
String newPath = dist;
dist = dist.substring(0, dist.lastIndexOf("/"));
File targetFile = new File(dist);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
InputStream in = file.getInputStream();
image = ImageIO.read(in);
// 获得缩放的比例
double ratio = 1.0;
// 计算新的图面宽度和高度
int newWidth = (int) (image.getWidth() * ratio);
int newHeight = (int) (image.getHeight() * ratio);
bfImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
bfImage.getGraphics().drawImage(image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH), 0, 0, null);
os = new FileOutputStream(newPath);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(bfImage);
jep.setQuality(quality, true);
encoder.encode(bfImage, jep);
os.flush();
os.close();
// }
} catch (Exception e) {
System.out.println("创建缩略图发生异常" + e.getMessage());
e.printStackTrace();
throw new BaseException("图片压缩异常",e);
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论