me.setBaseUploadPath("lipo"); //设置图片上传路径 这里可以去看源码 默认是upload
String fileName = uploadFile.getFileName(); String extentionName = fileName.substring(fileName.lastIndexOf(".")); // 后缀名 2 .jpg String newPath = uploadFile.getUploadPath(); //文件路径 String newName = System.currentTimeMillis() + extentionName;// 新名 3 Calendar date = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String name = format.format(date.getTime()); String newMkName = newPath+"/"+name; //日期文件夹 File file2 = new File(newMkName); //生成日期文件夹 4 if(!file2.exists()) { file2.mkdir(); } String filePath = newMkName + "/" + newName;// 文件完整路径 5 File m = new File(uploadFile.getUploadPath()+"/"+uploadFile.getFileName()); 6 File file=new File(filePath); 6 boolean flag; if(file.exists()){ throw new BizRuntimeException("不可上传重复的图片"); } flag = m.renameTo(file); // 重命名并上传文件 6 Map<String,String> map = new HashMap<>(); if(flag){ map.put("fileName",newName); map.put("fileUrl", PropKit.get("project")+"/lipo/"+name+"/"+newName); return map; }else{ return null; }
uploadFile就是获取的图片
1.获取图片
2.获取图片后缀名
3.根据时间戳获取新名字
4.获取文件路径,生成新日期文件夹
5.生成新文件完整路径
6.根据路径获取原文件file,获取新文件file,重命名
注意:
重命名是先读取原文件,然后将原文件的名字修改成新文件的名字,
File file1 = new File("c:/lipo/1.jpg");
File file2 = new File("c:/lipo/20171025/1508915766989.jpg");
file1.renameTo(file2);