⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uploadrule.java

📁 JEECMS此次版本升级相比之前的2.0版本做了比较大的改进
💻 JAVA
字号:
package com.jeecms.core.util;

import static com.jeecms.core.Constants.SPT;

import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;

import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang.StringUtils;

import com.ponyjava.common.util.StrUtils;

/**
 * 上传规则定义类。
 * 
 * 在上传之前将上传规则对象保存在session中,之后编辑器或其他上传对象将根据上传规则上传文件。
 * 
 * @author liufang
 * 
 */
public class UploadRule implements java.io.Serializable {
	private static final long serialVersionUID = 1L;
	/**
	 * 在session中的key
	 */
	public static final String KEY = "_upload_rule";

	public UploadRule() {
	}

	/**
	 * 构造器
	 * 
	 * @param path
	 *            上传路径前缀
	 * @param isGenName
	 *            是否生成图片
	 */
	public UploadRule(String pathPerfix, boolean isGenName) {
		this.pathPerfix = pathPerfix;
		this.isGenName = isGenName;
	}

	public UploadRule(String rootPath, String pathPerfix, boolean isGenName) {
		this.rootPath = rootPath;
		this.pathPerfix = pathPerfix;
		this.isGenName = isGenName;
	}

	/**
	 * 上传路径
	 */
	private String pathPerfix;
	/**
	 * 根路径
	 */
	private String rootPath;

	/**
	 * 获得文件全名
	 * 
	 * 目录前缀/年+季度/月+日/文件名.suffix
	 * 
	 * @return
	 */
	public String getPathName(String fileName, String suffix, String type) {
		StringBuilder sb = new StringBuilder();
		if (!StringUtils.isBlank(pathPerfix)) {
			sb.append(pathPerfix);
		}
		sb.append(type).append(getFilePath());
		if (isGenName) {
			sb.append(getFileName());
		} else {
			sb.append(fileName);
		}
		sb.append('.').append(suffix);
		return sb.toString();
	}

	public static String getFilePath() {
		StringBuilder sb = new StringBuilder();
		Calendar cal = Calendar.getInstance();
		sb.append(SPT).append(cal.get(Calendar.YEAR)).append('_').append(
				cal.get((Calendar.MONTH)) / 3 + 1).append(SPT).append(
				cal.get(Calendar.MONTH) + 1).append('_').append(
				cal.get(Calendar.DAY_OF_MONTH)).append(SPT);
		return sb.toString();
	}

	/**
	 * 是否生成文件名
	 */
	private boolean isGenName = true;

	/**
	 * 获得文件名
	 * 
	 * 4位随机数加上当前时间
	 * 
	 * @return
	 */
	public String getFileName() {
		String name = StrUtils.longToN36(System.currentTimeMillis());
		return RandomStringUtils.random(4, StrUtils.N36_CHARS) + name;
	}

	/**
	 * 可以上传的文件后缀
	 */
	private Set<String> acceptImg;

	/**
	 * 获得可图片的后缀,如没有指定,则使用默认的后缀集合。
	 * 
	 * @return
	 */
	public Set<String> getAcceptImg() {
		if (acceptImg == null) {
			acceptImg = new HashSet<String>();
			for (String s : DEF_IMG_ACCEPT) {
				acceptImg.add(s);
			}
		}
		return acceptImg;
	}

	/**
	 * 默认的可上传文件后缀
	 */
	public static final String[] DEF_IMG_ACCEPT = { "jpg", "gif", "jpeg",
			"png", "bmp", };

	public static void main(String[] args) {
		UploadRule rule = new UploadRule();
		System.out.println(rule.getPathName("", "jpg", "img"));
	}

	public boolean isGenName() {
		return isGenName;
	}

	public void setGenName(boolean isGenName) {
		this.isGenName = isGenName;
	}

	public String getPathPerfix() {
		return pathPerfix;
	}

	public void setPathPerfix(String pathPerfix) {
		this.pathPerfix = pathPerfix;
	}

	public void setAcceptImg(Set<String> acceptImg) {
		this.acceptImg = acceptImg;
	}

	public String getRootPath() {
		return rootPath;
	}

	public void setRootPath(String rootPath) {
		this.rootPath = rootPath;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -