@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";
}

最新文章

  1. 《OOC》笔记(1)——C语言const、static和extern的用法
  2. javascript第四节其它引用对象
  3. linux 下查找大于100M的文件(转)
  4. 转:Bat命令学习
  5. C难点分析
  6. Python文件之----CSV
  7. AspectJ截获操作
  8. oracle忘记密码,修改密码,解锁
  9. ZOJ 3623 Battle Ships 简单DP
  10. 绝对路径&相对路径
  11. vue之render基本书写方法
  12. git使用笔记1:结合Github远程仓库管理项目
  13. winserver-查看登陆日志
  14. localhost 将您重定向的次数过多
  15. find命令配合sed命令使用
  16. 解决svn图标不显示(绝对有用)
  17. Linux查看系统负载(CPU和MEM考虑)
  18. Java常考面试题(三)
  19. Python3 识别验证码(opencv-python)
  20. Linux系统启动详解(三)

热门文章

  1. D. Happy Tree Party CodeForces 593D【树链剖分,树边权转点权】
  2. 2019 Petrozavodsk Winter Camp, Yandex Cup C. Diverse Singing 上下界网络流
  3. 双端队列 C. Vasya and String
  4. Mac环境下使用Appium Inspector进行元素定位
  5. centos7 nginx设置开启启动
  6. R语言简单介绍
  7. [唐胡璐]Selenium技巧- 抓图并保存到TestNG报告中
  8. metal cmd执行时间
  9. Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
  10. Cogs 729. [网络流24题] 圆桌聚餐