From 9b4433fddf5b401edb0aace8a404ac733b122702 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 03 四月 2025 14:35:02 +0800 Subject: [PATCH] 添加非密字段显示 --- Source/BladeX-Tool/blade-core-boot/src/main/java/org/springblade/core/boot/file/LocalFileProxyFactory.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 117 insertions(+), 0 deletions(-) diff --git a/Source/BladeX-Tool/blade-core-boot/src/main/java/org/springblade/core/boot/file/LocalFileProxyFactory.java b/Source/BladeX-Tool/blade-core-boot/src/main/java/org/springblade/core/boot/file/LocalFileProxyFactory.java new file mode 100644 index 0000000..8165cc2 --- /dev/null +++ b/Source/BladeX-Tool/blade-core-boot/src/main/java/org/springblade/core/boot/file/LocalFileProxyFactory.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package org.springblade.core.boot.file; + +import org.springblade.core.boot.props.BladeFileProperties; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.ImageUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringPool; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; + +/** + * 鏂囦欢浠g悊绫� + * + * @author Chill + */ +public class LocalFileProxyFactory implements IFileProxy { + + /** + * 鏂囦欢閰嶇疆 + */ + private static BladeFileProperties fileProperties; + + private static BladeFileProperties getBladeFileProperties() { + if (fileProperties == null) { + fileProperties = SpringUtil.getBean(BladeFileProperties.class); + } + return fileProperties; + } + + @Override + public File rename(File f, String path) { + File dest = new File(path); + f.renameTo(dest); + return dest; + } + + @Override + 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())}; + } + + /** + * 鑾峰彇鏂囦欢鍚庣紑 + * + * @param fileName 鏂囦欢鍚� + * @return 鏂囦欢鍚庣紑 + */ + public static String getFileExt(String fileName) { + if (!fileName.contains(StringPool.DOT)) { + return ".jpg"; + } else { + return fileName.substring(fileName.lastIndexOf(StringPool.DOT)); + } + } + + /** + * 鑾峰彇鏂囦欢淇濆瓨鍦板潃 + * + * @param dir 鐩綍 + * @param saveDir 淇濆瓨鐩綍 + * @return 鍦板潃 + */ + 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(); + } + + + /** + * 鍥剧墖鍘嬬缉 + * + * @param path 鏂囦欢鍦板潃 + */ + @Override + public void compress(String path) { + try { + ImageUtil.zoomScale(ImageUtil.readImage(path), new FileOutputStream(new File(path)), null, getBladeFileProperties().getCompressScale(), getBladeFileProperties().getCompressFlag()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + +} -- Gitblit v1.9.3