package com.yuanchu.limslaboratory.utils;
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.tomcat.util.http.fileupload.IOUtils;
|
import org.springframework.stereotype.Component;
|
|
import java.io.ByteArrayInputStream;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
|
/**
|
* 保存文件工具
|
*/
|
@Slf4j
|
@Component
|
public class FileSaveUtils {
|
|
// 取yml中的路径 + /
|
// @Value("${file.path}")
|
private String FILE_PATH;
|
|
/**
|
* 存储文件主函数
|
* @param content 文件二进制流
|
* @param originalFilename 文件名称
|
* @return 返回文件名称用于存储数据库
|
*/
|
public String StoreFile(byte[] content, String originalFilename) {
|
// 生成随机名称:时间_随机6位数字
|
String FileName = System.currentTimeMillis() + "_" + MyUtils.getNumber(6);
|
String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
|
// 名称拼接
|
String fileName = FileName + suffix;
|
// 进行存储
|
storeFileWithFileName(content, fileName);
|
return fileName;
|
}
|
|
/**
|
* 存储文件函数
|
* @param content 文件二进制流
|
* @param fileName 文件名称
|
*/
|
private void storeFileWithFileName(byte[] content, String fileName) {
|
// 存储路径
|
String path = FILE_PATH + java.io.File.separatorChar;
|
// 目录不存在则创建
|
java.io.File file = new java.io.File(path);
|
if (!file.exists()) {
|
file.mkdirs();
|
}
|
// 开始存储
|
try (FileOutputStream os = new FileOutputStream(path + fileName);
|
ByteArrayInputStream is = new ByteArrayInputStream(content)) {
|
IOUtils.copy(is, os);
|
} catch (IOException e) {
|
MyUtils.PrintLog("存储文件异常:" + e);
|
}
|
}
|
}
|