码迷,mamicode.com
首页 > Web开发 > 详细

图片上传与下载

时间:2019-03-20 20:46:47      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:string   return   sim   art   try   orm   form   path   name   

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);
}
}

//用户上传相关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 {
//如果文件内容不为空,则写入上传路径
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, "图片上传失败");
}
}

图片上传与下载

标签:string   return   sim   art   try   orm   form   path   name   

原文地址:https://www.cnblogs.com/gavin-yao/p/10567248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!