package com.mindskip.xzs.service.impl;
|
|
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.IoUtil;
|
import com.mindskip.xzs.configuration.property.SystemConfig;
|
import com.mindskip.xzs.service.FileUpload;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
|
import java.io.BufferedOutputStream;
|
import java.io.File;
|
import java.io.InputStream;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.UUID;
|
|
@Service
|
@AllArgsConstructor
|
public class FileUploadImpl implements FileUpload {
|
private final SystemConfig systemConfig;
|
private final List<String> fileAllowExtension = Arrays.asList(".gif", ".GIF", ".jpg", ".JPG", ".jpeg", ".JPEG"
|
, ".png", ".PNG", ".mp4", ".MP4", ".pdf", ".PDF", ".xlsx", ".XLSX", ".docx", ".DOCX");
|
|
|
@Override
|
public String fileUpload(File file, String fileName, String folder) {
|
if (fileAllowExtension.stream().anyMatch(fe -> fileName.endsWith(fe))) {
|
String filePath = String.format("%s/%s/%s", folder, UUID.randomUUID(), fileName);
|
File destFile = new File(String.format("%s%s", systemConfig.getLocalStore().getResource(), filePath));
|
File fileParent = destFile.getParentFile();
|
if (!fileParent.exists()) {
|
fileParent.mkdirs();
|
}
|
FileUtil.copyFile(file, destFile);
|
return systemConfig.getLocalStore().getUrl() + "/" + filePath;
|
} else {
|
return null;
|
}
|
}
|
|
@Override
|
public String fileUpload(InputStream inputStream, long fileSize, String fileName, String folder) {
|
if (fileAllowExtension.stream().anyMatch(fe -> fileName.endsWith(fe))) {
|
String filePath = String.format("%s/%s/%s", folder, UUID.randomUUID(), fileName);
|
File destFile = new File(String.format("%s%s", systemConfig.getLocalStore().getResource(), filePath));
|
File fileParent = destFile.getParentFile();
|
if (!fileParent.exists()) {
|
fileParent.mkdirs();
|
}
|
BufferedOutputStream out = FileUtil.getOutputStream(destFile.getPath());
|
IoUtil.copy(inputStream, out, IoUtil.DEFAULT_BUFFER_SIZE);
|
IoUtil.close(inputStream);
|
IoUtil.close(out);
|
return systemConfig.getLocalStore().getUrl() + "/" + filePath;
|
} else {
|
return null;
|
}
|
}
|
|
|
}
|