package com.qianwen.core.boot.file;
|
|
import java.io.File;
|
import java.io.FileNotFoundException;
|
import java.io.FileOutputStream;
|
import com.qianwen.core.boot.props.BladeFileProperties;
|
import com.qianwen.core.tool.utils.DateUtil;
|
import com.qianwen.core.tool.utils.ImageUtil;
|
import com.qianwen.core.tool.utils.SpringUtil;
|
|
/* loaded from: blade-core-boot-9.3.0.0-SNAPSHOT.jar:org/springblade/core/boot/file/LocalFileProxyFactory.class */
|
public class LocalFileProxyFactory implements IFileProxy {
|
private static BladeFileProperties fileProperties;
|
|
private static BladeFileProperties getBladeFileProperties() {
|
if (fileProperties == null) {
|
fileProperties = (BladeFileProperties) SpringUtil.getBean(BladeFileProperties.class);
|
}
|
return fileProperties;
|
}
|
|
@Override // com.qianwen.core.boot.file.IFileProxy
|
public File rename(File f, String path) {
|
File dest = new File(path);
|
f.renameTo(dest);
|
return dest;
|
}
|
|
@Override // com.qianwen.core.boot.file.IFileProxy
|
public String[] path(File f, String dir) {
|
long time = System.nanoTime();
|
StringBuilder uploadPath = new StringBuilder().append(getFileDir(dir, getBladeFileProperties().getUploadRealPath())).append(time).append(getFileExt(f.getName()));
|
StringBuilder virtualPath = new StringBuilder().append(getFileDir(dir, getBladeFileProperties().getUploadCtxPath())).append(time).append(getFileExt(f.getName()));
|
return new String[]{BladeFileUtil.formatUrl(uploadPath.toString()), BladeFileUtil.formatUrl(virtualPath.toString())};
|
}
|
|
public static String getFileExt(String fileName) {
|
if (!fileName.contains(".")) {
|
return ".jpg";
|
}
|
return fileName.substring(fileName.lastIndexOf("."));
|
}
|
|
public static String getFileDir(String dir, String saveDir) {
|
StringBuilder newFileDir = new StringBuilder();
|
newFileDir.append(saveDir).append(File.separator).append(dir).append(File.separator).append(DateUtil.format(DateUtil.now(), "yyyyMMdd")).append(File.separator);
|
return newFileDir.toString();
|
}
|
|
@Override // com.qianwen.core.boot.file.IFileProxy
|
public void compress(String path) {
|
try {
|
ImageUtil.zoomScale(ImageUtil.readImage(path), new FileOutputStream(new File(path)), (String) null, getBladeFileProperties().getCompressScale().doubleValue(), getBladeFileProperties().getCompressFlag().booleanValue());
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|