图片上传与下载
private static final String IMAGE_TYPE_PROMPT = "文件格式僅支持jpg、png";
private static final String IMAGE_FILE_SIZE_PROMPT = "文件格式僅支持jpg、png"; public String saveUserImageToDir(MultipartFile multipartFile, String dir) throws AobpException, IOException {
if (!ImageUtil.checkIsImgByName(multipartFile.getOriginalFilename())) {
throw new AobpException(ExceptionConstant.PARAMS_INVALID, IMAGE_TYPE_PROMPT);
}
if (!ImageUtil.fileSizeLegal(multipartFile.getSize())) {
throw new AobpException(ExceptionConstant.PARAMS_INVALID, IMAGE_FILE_SIZE_PROMPT);
}
return UploadUtil.upload(multipartFile,dir);
}
public class UploadUtil {
/**
* @return dest file name
*/
public static String uploadFileToDir(MultipartFile multipartFile, String saveDir) throws AobpException {
String fileName = UUID.randomUUID().toString().replaceAll("-", "");
// 文件新路徑:文件名
uploadFileToDir(multipartFile, saveDir, fileName);
return fileName;
}
public static void uploadFileToDir(MultipartFile multipartFile, String saveDir, String fileName) throws AobpException {
uploadFile(multipartFile, saveDir + File.separator + fileName);
}
public static void uploadFile(MultipartFile multipartFile, String filePath) throws AobpException {
try (InputStream inputStream = multipartFile.getInputStream();
FileOutputStream outputStream = new FileOutputStream(filePath)) {
IOUtils.copy(inputStream, outputStream);
} catch (Exception e) {
log.error("copy file failed", e);
throw new AobpException(ExceptionConstant.INTERNAL_ERR, ExceptionConstant.UNKNOWN_ERROR);
}
}
//用戶上傳相關(guān)Yao
protected static Map<String, String> getFilePath(String path, String originName){
Date nowDate = new Date();
String fileFolder = path+File.separator+new SimpleDateFormat("yyyy").format(nowDate)+
File.separator+new SimpleDateFormat("MM").format(nowDate);
File fileNew = new File(fileFolder);
if(!fileNew.exists()){
fileNew.mkdirs();
}
String fileName = new SimpleDateFormat("yyyyMMddhhmmssSSSS").format(nowDate)+(int)((Math.random()*9+1)*100000)+"."+originName.substring(originName.lastIndexOf(".")+1);
String filePath = fileFolder+File.separator+fileName;
Map<String, String > resultMap = new HashMap();
resultMap.put("fileName",fileName);
resultMap.put("filePath",filePath);
return resultMap;
}
public static String upload(MultipartFile file, String saveDir) throws IOException, AobpException {
//如果文件內(nèi)容不為空,則寫(xiě)入上傳路徑
if (!file.isEmpty()) {
//上傳原文件名
String originName = file.getOriginalFilename();
Map<String, String> resultMap = getFilePath(saveDir, originName);
File filePath = new File(resultMap.get("filePath"));
try(FileOutputStream fileOutputStream = new FileOutputStream(filePath)){
FileCopyUtils.copy(file.getInputStream(), fileOutputStream);
}
return resultMap.get("fileName");
}
throw new AobpException(500, "圖片上傳失敗");
}
}
private static final String IMAGE_FILE_SIZE_PROMPT = "文件格式僅支持jpg、png"; public String saveUserImageToDir(MultipartFile multipartFile, String dir) throws AobpException, IOException {
if (!ImageUtil.checkIsImgByName(multipartFile.getOriginalFilename())) {
throw new AobpException(ExceptionConstant.PARAMS_INVALID, IMAGE_TYPE_PROMPT);
}
if (!ImageUtil.fileSizeLegal(multipartFile.getSize())) {
throw new AobpException(ExceptionConstant.PARAMS_INVALID, IMAGE_FILE_SIZE_PROMPT);
}
return UploadUtil.upload(multipartFile,dir);
}
public class UploadUtil {
/**
* @return dest file name
*/
public static String uploadFileToDir(MultipartFile multipartFile, String saveDir) throws AobpException {
String fileName = UUID.randomUUID().toString().replaceAll("-", "");
// 文件新路徑:文件名
uploadFileToDir(multipartFile, saveDir, fileName);
return fileName;
}
public static void uploadFileToDir(MultipartFile multipartFile, String saveDir, String fileName) throws AobpException {
uploadFile(multipartFile, saveDir + File.separator + fileName);
}
public static void uploadFile(MultipartFile multipartFile, String filePath) throws AobpException {
try (InputStream inputStream = multipartFile.getInputStream();
FileOutputStream outputStream = new FileOutputStream(filePath)) {
IOUtils.copy(inputStream, outputStream);
} catch (Exception e) {
log.error("copy file failed", e);
throw new AobpException(ExceptionConstant.INTERNAL_ERR, ExceptionConstant.UNKNOWN_ERROR);
}
}
//用戶上傳相關(guān)Yao
protected static Map<String, String> getFilePath(String path, String originName){
Date nowDate = new Date();
String fileFolder = path+File.separator+new SimpleDateFormat("yyyy").format(nowDate)+
File.separator+new SimpleDateFormat("MM").format(nowDate);
File fileNew = new File(fileFolder);
if(!fileNew.exists()){
fileNew.mkdirs();
}
String fileName = new SimpleDateFormat("yyyyMMddhhmmssSSSS").format(nowDate)+(int)((Math.random()*9+1)*100000)+"."+originName.substring(originName.lastIndexOf(".")+1);
String filePath = fileFolder+File.separator+fileName;
Map<String, String > resultMap = new HashMap();
resultMap.put("fileName",fileName);
resultMap.put("filePath",filePath);
return resultMap;
}
public static String upload(MultipartFile file, String saveDir) throws IOException, AobpException {
//如果文件內(nèi)容不為空,則寫(xiě)入上傳路徑
if (!file.isEmpty()) {
//上傳原文件名
String originName = file.getOriginalFilename();
Map<String, String> resultMap = getFilePath(saveDir, originName);
File filePath = new File(resultMap.get("filePath"));
try(FileOutputStream fileOutputStream = new FileOutputStream(filePath)){
FileCopyUtils.copy(file.getInputStream(), fileOutputStream);
}
return resultMap.get("fileName");
}
throw new AobpException(500, "圖片上傳失敗");
}
}
轉(zhuǎn)載于:https://www.cnblogs.com/gavin-yao/p/10567248.html
總結(jié)
- 上一篇: IF-TRY
- 下一篇: 主体的实践,摘录-----保守还是改革,