All Downloads are FREE. Search and download functionalities are using the official Maven repository.

goja.rapid.mvc.upload.filerenamepolicy.DateRandomFileRenamePolicy Maven / Gradle / Ivy

The newest version!
/**
 *
 */
package goja.rapid.mvc.upload.filerenamepolicy;

import goja.core.app.GojaConfig;
import goja.core.kits.lang.Strs;
import com.jfinal.kit.HashKit;
import com.jfinal.kit.StrKit;

import org.joda.time.DateTime;

import java.io.File;

/**
 * @author BruceZCQ
 *         baseSaveDir/parentDir/2015/6/22/zzzz.jpg
 */
public class DateRandomFileRenamePolicy extends FileRenamePolicyWrapper {

    private String parentDir        = null;
    private String appParentDateDir = null;
    private String parentDateDir    = null;
    private String customName       = null;

    public DateRandomFileRenamePolicy() {
        this(null);
    }

    public DateRandomFileRenamePolicy(String parentDir) {
        this.parentDir = this.appendFileSeparator(parentDir);
    }

    public DateRandomFileRenamePolicy(String parentDir, String customName) {
        this.parentDir = this.appendFileSeparator(parentDir);
        this.customName = customName;
    }

    public void setCutomName(String customName) {
        this.customName = customName;
    }

    @Override
    public File nameProcess(File f, String name, String ext) {
        String rename;
        if (StrKit.notBlank(this.customName)) {
            rename = this.customName;
        } else {
            rename = HashKit.md5(Strs.randomStr());
        }
        // add "/" postfix
        StringBuilder path = new StringBuilder(f.getParent());

        // append parent dir
        if (StrKit.notBlank(this.parentDir)) {
            path.append(this.parentDir);
        }

        //append year month day
        String ymdSubDir = DateTime.now().toString("yyyy" + File.separator + "M" + File.separator + "d");
        path.append(ymdSubDir);

        String parentDateDir = this.parentDir + ymdSubDir + File.separator;
        this.setParentDateDir(parentDateDir);

        this.setAppParentDateDir(GojaConfig.getAppName() + parentDateDir);

        String _path = path.toString();
        this.setSaveDirectory(_path);

        String fileName = rename + ext;

        File file = new File(_path);
        if (!file.exists()) {
            boolean mk = file.mkdirs();
            if (!mk) {

            }
        }

        return (new File(_path, fileName));
    }

    /**
     * 返回时间目录 /WebAppName/ParentDir/2015/7/22/
     *
     * @return the appParentDateDir
     */
    public String getAppParentDateDir() {
        return appParentDateDir;
    }

    protected void setAppParentDateDir(String appParentDateDir) {
        this.appParentDateDir = appParentDateDir;
    }

    /**
     * 返回时间目录 /ParentDir/2015/7/22/
     *
     * @return the parentDateDir
     */
    public String getParentDateDir() {
        return parentDateDir;
    }

    protected void setParentDateDir(String parentDateDir) {
        this.parentDateDir = parentDateDir;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy