温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在Java 中使用MultipartFile实现一个文件上传功能

发布时间:2020-12-30 14:14:09 来源:亿速云 阅读:780 作者:Leah 栏目:开发技术

怎么在Java 中使用MultipartFile实现一个文件上传功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1. 判断允许上传文件的 文件后缀/图片后缀/相片后缀 和 其它工具类

import org.springframework.stereotype.Component; import java.io.File; import java.util.Arrays; import java.util.List; @Component public class FileUtil {   public static final List<String> IMAGE_EXTENSIONS = Arrays.asList(".jpg", ".jpeg", ".png"); } import java.util.UUID; public class CommonUtil {   public static String getUUID() {     String uuid = UUID.randomUUID().toString().replaceAll("-", "");     return uuid;   } } import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class DateUtil {   public static final String HH = "HH";   public static final String YYYY_MM_DD = "yyyy-MM-dd";   public static final DateTimeFormatter FORMATTER_HH = DateTimeFormatter.ofPattern(HH);   public static final DateTimeFormatter FORMATTER_YYYY_MM_DD = DateTimeFormatter.ofPattern(YYYY_MM_DD);   public static String getHH() {     return FORMATTER_HH.format(LocalDateTime.now());   }   public static String getYYYYMMDD() {     return FORMATTER_YYYY_MM_DD.format(LocalDateTime.now());   } }

2. 上传接口

@PostMapping("/updateImage.do") public Map<String, String> updateImage(@RequestParam("image") MultipartFile[] multfiles) {   	Map<String, String> result = new HashMap<>();     if (multfiles.length == 0) {	result.put("message", "请选择图片!");	return result;     }     // 源文件名称     final String originalFileName = multfiles[0].getOriginalFilename();     if (StringUtils.isBlank(originalFileName)) {	result.put("message", "请选择图片!");	return result;     }     // 文件后缀[.jpg]     final String suffix = originalFileName.substring(originalFileName.lastIndexOf(".")).toLowerCase();     if (!FileUtil.IMAGE_EXTENSIONS.contains(suffix)) {	result.put("message", "图片格式错误!");	return result;     }     String lastFilePath;     String newFileName = CommonUtil.getUUID() + suffix;     String folderName = File.separator + "temp" + File.separator;     String relativePath = folderName + DateUtil.getYYYYMMDD() + File.separator + DateUtil.getHH();     String filePath = "D:\\file" + relativePath;     String fileUrl = null;     File targetFile = new File(filePath);     if (!targetFile.exists()) {       targetFile.mkdirs();     }     FileOutputStream out = null;     try {       lastFilePath = filePath + File.separator + newFileName;       out = new FileOutputStream(lastFilePath);       out.write(multfiles[0].getBytes());       fileUrl = "http://127.0.0.1:9000" + relativePath + File.separator + newFileName;     } catch (Exception e) {       e.printStackTrace();     } finally {       if (out != null) {         try {           out.flush();         } catch (IOException e) {           e.printStackTrace();         }         try {           out.close();         } catch (IOException e) {           e.printStackTrace();         }       }     }     if (fileUrl == null) {	result.put("message", "图片上传失败!");	return result;     }	result.put("message", "上传成功!");	result.put("url", fileUrl);	return result;   }

3. 上传成功

url => http://127.0.0.1:9000/temp/2019-09-12/14/0eac00b96f134652b34172e84febe8d1.jpg

关于怎么在Java 中使用MultipartFile实现一个文件上传功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI