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