本章继上一章下载所有图片的反向,为提高效率而定
源码:
/**
* 图片载入
*
* @param code
* @email wfeil211@foxmail.com
* @return
*/
@PostMapping("loadingImage")
@ApiOperation(value = "图片载入", notes = "适用web端")
public String loadingImage(String merchantNo) {
logger.info("收到图片载入请求》》》》》》》》》》》》》》》");
String path = "D:\\tmp"; //这里输入指定文件夹路径(绝对路径)
File dir = new File(path);
String[] fileList = dir.list(); //获取指定文件夹中所有文件的文件名
int index = 0;
for (int i = 0; i < fileList.length; i++) {
//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream inputStream = null;
byte[] buffer = null;
//读取图片字节数组
try {
index++;
logger.info("开始加载第:"+index+" 张照片");
logger.info("文件名:"+fileList[i]); //打印出图片文件名
inputStream = new FileInputStream(path + "\\" + fileList[i]);
int count = 0;
while (count == 0) {
count = inputStream.available();
}
buffer = new byte[count];
inputStream.read(buffer);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
// 关闭inputStream流
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 对字节数组Base64编码
String base64 = "data:image/jpg;base64,"+ new BASE64Encoder().encode(buffer);
base64 = base64.replaceAll("[\\s*\t\n\r]", "");
//logger.info("照片base64为:"+base64);
//载入员工信息
String chineseName = fileList[i].substring(0,fileList[i].indexOf("-"));
logger.info("员工姓名为:"+chineseName);
//部门
String suffix = fileList[i].substring(fileList[i].indexOf("-")+1);
String departName = suffix.substring(0, suffix.indexOf("-"));
logger.info("员工部门为:"+departName);
List<EmployeeInfo> employeeInfos = employeeService.getEmployeeByChineseName(merchantNo, chineseName);
if(employeeInfos == null || employeeInfos.size()==0){
logger.info("员工:"+chineseName+" 未找到照片");
continue;
}
//假如多个员工用部门筛选
for(EmployeeInfo emp:employeeInfos){
if(departName.equals(emp.getDepartment().getDepartName()) && StringUtils.isNotBlank(emp.getCardNo())){
//相同部门写入图片
processImage(emp,base64);
logger.info("员工:"+chineseName+" 照片上传完成,序号:"+index);
}
}
}
logger.info("图片载入完成,共计:"+index+" 张照片 》》》》》》》》》》》》》》》");
return "success";
}