• 项目图片上传存储的目录部分代码思路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支持。

  • 相关阅读:
    linux共享库的版本控制
    c++:自己动手实现线程安全的c++单例类
    c++设计成员变量可动态调整的动态类结构
    c++中std::set自定义去重和排序函数
    python网络编程调用recv函数完整接收数据的三种方法
    c++ 以二进制和以文本方式读写文件的区别
    c++和python如何实现主机字节序和网络字节序的相互转换
    线控性能比拼,MKZ与CRV作为自动驾驶开发平台的全面测评
    css 简易 loading 加载图
    Element UI 中被隐藏的滚动条
  • 原文地址:https://www.cnblogs.com/simpledev/p/3512648.html
Copyright © 2020-2023  润新知