一、随机文件名生成 具体代码演示:
UUID 模块是内置的:
public static String getRandomName(String fileName) {
int index = fileName.lastIndexOf(".");
String extension = fileName.substring(index);//获取后缀名
String uuidFileName = UUID.randomUUID().toString().replace("-", "") + extension;
return uuidFileName;
}
二、根据当前时间创建文件夹
import java.time.LocalDate;
import com.ruoyi.common.utils.StringUtils;
public static String getDateDir(String fileName) {
String dataUrl = LocalDate.now().toString().replace("-","/")+"/";
System.out.println(dataUrl);
String newDir = StringUtils.format("{}/", dataUrl);
System.out.println(newDir );
return newDir
}
输出效果:
/2023/9/15/
三、文件上传后,放置到指定目录下
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
public static String getDateDir(String fileName) {
String dataUrl = LocalDate.now().toString().replace("-","/")+"/";
System.out.println(dataUrl);
String newDir = StringUtils.format("{}/", dataUrl);
System.out.println(newDir );
return newDir
}
...
... 省略了类的创建等代码,主要内容如下:
...
public static final String upload(MultipartFile file){
String absPath = "D:/filesss/" + getDateDir() + originalFilename;
// 指定目录
//通过CommonsMultipartFile的方法直接写文件(注意这个时候)
try {
/
file.transferTo(Paths.get(absPath));; // 将文件放置在这个路径下
/
long endTime = System.currentTimeMillis();
logger.info("采用file.Transto的运行时间:" + String.valueOf(endTime - startTime) + "ms");
} catch (IOException e) {
e.printStackTrace();
}
}