• SpringMVC,SpringBoot上传文件简洁代码


        @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";
        }
  • 相关阅读:
    仅坚持了9天:京东今日宣布暂停火车票代购业务
    Highcharts JS——制作图表的纯js类库
    eclipse插件——php工具集成
    如何新增histats计数器到自己的 blog
    C#写入文本txt
    我怎么感觉js快无敌了~
    马云卸任演讲全文
    添加好玩的honehoneclock到自己的blog
    C#获取日期的年月日时分秒
    js闭包
  • 原文地址:https://www.cnblogs.com/passedbylove/p/11385019.html
Copyright © 2020-2023  润新知