Java MultipartFile 上传文件/上传图片

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

2. 上传接口

3. 上传成功

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 ListIMAGE_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 MapupdateImage(@RequestParam("image") MultipartFile[] multfiles) {

Mapresult = 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

如果您觉得有帮助,欢迎点赞哦 ~ 谢谢!!

file 图片上传 java_Java MultipartFile 上传文件/上传图片 亲测相关推荐

  1. transporter上传卡正在交付_Xcode11使用Transporter上传AppStore时卡住解决方式,亲测可用...

    Xcode11使用Transporter上传AppStore时卡住解决方式,亲测可用 在Authenticating with the iTunes store(即AppStore认证)卡住 解决办法 ...

  2. git如何删除github上的文件,亲测有效

    目录 问题描述: 问题解决: 问题描述: github是一个很好的代码托管网站,但是有一个不太好的地方,只能删除仓库,不能删除仓库中的文件.一旦上传错误,就跟尴尬,纪录下踩过的坑. 成功删除不要的文件 ...

  3. java读取服务器图片大小,SpringMVC中MultipartFile上传获取图片的宽度和高度详解

    SpringMVC一般使用MultipartFile来做文件的上传,通过MultipartFile的getContentType()方法判定文件的类型(MIME) ".doc":& ...

  4. wcf服务器上传文件大小限制,wcf 上传大文件例子(亲测通过)

    [实例简介] 亲测可以上传 300M的大文件,如果想上传更大的文件 请按照此链接提示做配置修改即可 http://www.cnblogs.com/duanweishi/p/5408395.html P ...

  5. tensorflow在AMD上用ROCm框架实现GPU训练(亲测有效)

    众所周知,a卡对于tensorflow gpu的支持很小,要想使用的话一般都得配n卡的电脑.而我只是感兴趣一个项目,想要跑出来一个模型,如果不用gpu加速,可能得跑一个月,所以不得不寻找在a卡上的解决 ...

  6. 在钉钉上怎么手写_胖·评测|亲测!磐度A5数字纸笔手写板能适配多少直播平台?...

    停课不停学,各大科技企业纷纷推出各类教学平台吗,一时之间可谓百家争鸣!但是对于一线教师而言,除了为可怕的直播拥堵与繁琐的直播操作而头痛之外,一个更可怕的事实出现了--解题答疑,没有趁手的好工具怎么搞定 ...

  7. 图片批量转为PDF怎么转?这些方法亲测实用

      你们平时在整理照片的时候,有把多张图片转为PDF文件的需求吗?我因为工作需要,会拍摄和存储很多照片,而且经常需要将这些照片归类,整合到一个PDF文件中.可能有的小伙伴还不知道多张图片转PDF怎么转 ...

  8. summernote支持视频上传功能,综合几个版本亲测可用

    原框架只支持视频链接上传,局限性比较大,不能上传本地的视频,综合这我查了几天资料 ,有个版本要么可用但是部分图标显示错误,综合0.8.12和0.8.18 版本整理.增加上传内容转载其他处,其余的均是自 ...

  9. 通过git上传代码到代码库步骤(亲测有效)

    1.git init(仓库初始化操作) 2.git remote add origin git@github.com:architectMymine/test.git(仓库地址)创建上传地址 3.gi ...

  10. 如何将电影台词拼接到一张图上?这4种台词拼接方法亲测好用

    分享4个台词截图拼接工具,简单方便,拼接效果好,喜欢在分享各种电影截图的可以去用了! 1.截图拼接工具 一个免费好用的截图拼接在线工具,打开它直接就能使用了,上传多张图片之后,调整红色区域,选择字幕的 ...

最新文章

  1. jquery带token访问接口ajax
  2. 安卓通讯录系统mysql_Android手机通讯录项目开发--联系人数据库contacts2.db介绍
  3. 官宣:神策数据证券行业解决方案,全新上线官网!
  4. Java lambda expression
  5. Java讲课笔记08:数组
  6. 初探 vue 插件开发
  7. html5media 原理,HTML媒体(Media)是什么
  8. bower安装使用入门详情
  9. Java IO--字节-字符流转换
  10. 力扣-628 三个数的最大乘积
  11. Qt项目--截屏软件
  12. 金盾播放器android安卓,金盾高级视频加密系统跨平台播放器Android安卓安装步骤.doc...
  13. 谷歌浏览器怎么设置成暗黑模式
  14. 【踩坑】python: This install of SoX cannot process .mp3 files
  15. 【面试】TCP、UDP、Socket、HTTP网络编程面试题
  16. 400万像素摄像头,你还在用百兆交换机吗?
  17. Centos搭建配置SDN
  18. jetson nx fan auto pwm
  19. Ubuntu屏幕录像软件推荐-Kazam
  20. 单链表反转 | 不合法的路径地址转变为合法路径

热门文章

  1. Anaconda常用指令
  2. Pytorch中DataLoader相关操作
  3. Java中的管程Monitor
  4. C++基础——类继承中方法重载
  5. Kotlin Weekly 中文周报 —— 102
  6. 0819 - 要想富,追新不守旧
  7. TCP之keepalive
  8. Spring父子上下文(WebApplicationContext)(防止事务失效)
  9. DS4300电池即将过期,磁阵目前读写缓慢解决过程.txt
  10. 30个灵感来自大自然的国外网页设计作品欣赏