¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * 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; |
| | | |
| | | /** |
| | | * æä»¶ä»£çç±» |
| | | * |
| | | * @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(); |
| | | } |
| | | } |
| | | |
| | | } |