SpringMVC,SpringBoot上传文件简洁代码
2024-09-05 07:56:10
@RequestMapping("/updateAvatar.html")
public String updateHeadUrl(MultipartFile avatar, Model model, HttpSession session) throws IOException {
// 文件类型限制
String[] allowedType = {"image/bmp", "image/gif", "image/jpeg", "image/png"};
boolean allowed = Arrays.asList(allowedType).contains(avatar.getContentType());
if (!allowed) {
model.addAttribute("error3","图片格式仅限bmp,jpg,png,gif~");
return "editProfile";
}
// 图片大小限制
if (avatar.getSize() > 3 * 1024 * 1024) {
model.addAttribute("error3","图片大小限制在3M以下哦~");
return "editProfile";
}
// 包含原始文件名的字符串
String filename = avatar.getOriginalFilename();
// 提取文件拓展名
String extension = filename.substring(filename.indexOf(".") +1);
String dir = context.getRealPath("/upload/avatar/"); //如果目录不存在,级联创建
//.normalize()方法用于标准化路径,替换/\等问题
if(!Files.exists(Paths.get(dir)))
{
Files.createDirectories(Paths.get(dir).normalize());
}
String uuid = UUID.randomUUID().toString();
String webUrl = String.format("/upload/avatar/%s.%s",uuid,extension);
String target = String.format("%s/%s.%s",dir,uuid,extension); //写入文件
Files.write(Paths.get(target).normalize(),avatar.getBytes()); //更新数据库中头像URL
int uid = (int) session.getAttribute("uid");
userService.updateHeadUrl(uid,webUrl); return "redirect:profile.html";
}
最新文章
- 《OOC》笔记(1)——C语言const、static和extern的用法
- javascript第四节其它引用对象
- linux 下查找大于100M的文件(转)
- 转:Bat命令学习
- C难点分析
- Python文件之----CSV
- AspectJ截获操作
- oracle忘记密码,修改密码,解锁
- ZOJ 3623 Battle Ships 简单DP
- 绝对路径&;相对路径
- vue之render基本书写方法
- git使用笔记1:结合Github远程仓库管理项目
- winserver-查看登陆日志
- localhost 将您重定向的次数过多
- find命令配合sed命令使用
- 解决svn图标不显示(绝对有用)
- Linux查看系统负载(CPU和MEM考虑)
- Java常考面试题(三)
- Python3 识别验证码(opencv-python)
- Linux系统启动详解(三)
热门文章
- D. Happy Tree Party CodeForces 593D【树链剖分,树边权转点权】
- 2019 Petrozavodsk Winter Camp, Yandex Cup C. Diverse Singing 上下界网络流
- 双端队列 C. Vasya and String
- Mac环境下使用Appium Inspector进行元素定位
- centos7 nginx设置开启启动
- R语言简单介绍
- [唐胡璐]Selenium技巧- 抓图并保存到TestNG报告中
- metal cmd执行时间
- Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
- Cogs 729. [网络流24题] 圆桌聚餐