项目图片上传存储的目录部分代码思路Calendar类获取年月日

在项目中将产品图片全部放置在一个文件夹下面的话,如果图片很多的话,加载速度会减慢,可以按照文件夹按年,月,日来分开存放,图片文件名字取系统时间long类型加上5位随机数字码避免重复。

Calendar calendar = Calendar.getInstance();
                /**按年月日来分*/
                int year = calendar.get(Calendar.YEAR);//得到年
                int month = calendar.get(Calendar.MONTH)+1;//得到月,因为从0开始的,所以要加1
                int day = calendar.get(Calendar.DAY_OF_MONTH);//得到天


String filename = String.valueOf(calendar.getTimeInMillis() + StrUtils.randomNumeric(5));

saveurl = Constants.ROOTPATH + url;
                
                String path1 = saveurl + year + "/" ;
                String path2 = saveurl + year + "/" + month + "/" ;
                String path3 = saveurl + year + "/" + month + "/" + day + "/" ;
                
                //建立按年月日文件夹,如果文件夹不存在,就建立新的文件夹。
                FileOperate.newFolder(path1);
                FileOperate.newFolder(path2);
                FileOperate.newFolder(path3);
                
                String pic_url = filename + "." + ext;

                saveurl = path3; //新的目录
                saveurl += pic_url; //保存路径 
                //saveurl += filename;

                myFile.saveAs(saveurl, SmartUpload.SAVE_PHYSICAL);
                
                /**保存到数据库中的图片地址*/
                pic_url = year + "/" + month + "/" + day + "/" + pic_url;  //新的图片url
                

文件夹操作类FileOperate.java

/**
     * 新建目录
     * 
     * @param folderPath
     *            String 如 c:/fqf
     * @return boolean
     */
    public static void newFolder(String folderPath) {
        try {
            String filePath = folderPath;
            filePath = filePath.toString();
            java.io.File myFilePath = new java.io.File(filePath);
            if (!myFilePath.exists()) {
                myFilePath.mkdir();
            }
        } catch (Exception e) {
            //  //ln("新建目录操作出错 ");
            e.printStackTrace();
            log.error(e.getMessage(), e.fillInStackTrace());
        }
    }

StrUtils类

public static String randomNumeric(int i) {
        return RandomStringUtils.randomNumeric(i);
    }

需要commons-lang-2.0.jar支持。

原文地址:https://www.cnblogs.com/simpledev/p/3512648.html