Java MultipartFile实现上传文件/上传图片
1.判断允许上传文件的文件后缀/图片后缀/相片后缀和其它工具类
importorg.springframework.stereotype.Component;
importjava.io.File;
importjava.util.Arrays;
importjava.util.List;
@Component
publicclassFileUtil{
publicstaticfinalListIMAGE_EXTENSIONS=Arrays.asList(".jpg",".jpeg",".png");
}
importjava.util.UUID;
publicclassCommonUtil{
publicstaticStringgetUUID(){
Stringuuid=UUID.randomUUID().toString().replaceAll("-","");
returnuuid;
}
}
importjava.time.LocalDateTime;
importjava.time.format.DateTimeFormatter;
publicclassDateUtil{
publicstaticfinalStringHH="HH";
publicstaticfinalStringYYYY_MM_DD="yyyy-MM-dd";
publicstaticfinalDateTimeFormatterFORMATTER_HH=DateTimeFormatter.ofPattern(HH);
publicstaticfinalDateTimeFormatterFORMATTER_YYYY_MM_DD=DateTimeFormatter.ofPattern(YYYY_MM_DD);
publicstaticStringgetHH(){
returnFORMATTER_HH.format(LocalDateTime.now());
}
publicstaticStringgetYYYYMMDD(){
returnFORMATTER_YYYY_MM_DD.format(LocalDateTime.now());
}
}
2.上传接口
@PostMapping("/updateImage.do")
publicMapupdateImage(@RequestParam("image")MultipartFile[]multfiles){
Mapresult=newHashMap<>();
if(multfiles.length==0){
result.put("message","请选择图片!");
returnresult;
}
//源文件名称
finalStringoriginalFileName=multfiles[0].getOriginalFilename();
if(StringUtils.isBlank(originalFileName)){
result.put("message","请选择图片!");
returnresult;
}
//文件后缀[.jpg]
finalStringsuffix=originalFileName.substring(originalFileName.lastIndexOf(".")).toLowerCase();
if(!FileUtil.IMAGE_EXTENSIONS.contains(suffix)){
result.put("message","图片格式错误!");
returnresult;
}
StringlastFilePath;
StringnewFileName=CommonUtil.getUUID()+suffix;
StringfolderName=File.separator+"temp"+File.separator;
StringrelativePath=folderName+DateUtil.getYYYYMMDD()+File.separator+DateUtil.getHH();
StringfilePath="D:\\file"+relativePath;
StringfileUrl=null;
FiletargetFile=newFile(filePath);
if(!targetFile.exists()){
targetFile.mkdirs();
}
FileOutputStreamout=null;
try{
lastFilePath=filePath+File.separator+newFileName;
out=newFileOutputStream(lastFilePath);
out.write(multfiles[0].getBytes());
fileUrl="http://127.0.0.1:9000"+relativePath+File.separator+newFileName;
}catch(Exceptione){
e.printStackTrace();
}finally{
if(out!=null){
try{
out.flush();
}catch(IOExceptione){
e.printStackTrace();
}
try{
out.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
if(fileUrl==null){
result.put("message","图片上传失败!");
returnresult;
}
result.put("message","上传成功!");
result.put("url",fileUrl);
returnresult;
}
3.上传成功
url=>http://127.0.0.1:9000/temp/2019-09-12/14/0eac00b96f134652b34172e84febe8d1.jpg
以上就是JavaMultipartFile实现上传文件/上传图片的详细内容,更多关于JavaMultipartFile上传文件的资料请关注毛票票其它相关文章!