栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java用户修改头像接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java用户修改头像接口

Java实现上传头像
  • 在项目开发中我们会有上传头像,修改头像的操作,controller代码如下
	//设置上传文件的最大值
    public static final int AVATAR_MAX_SIZE = 10 * 1024 *1024;

    //设置上传文件类型
    public static final List AVATAR_TYPE = new ArrayList<>();

    //使用静态块给图片类型赋值
    static {
        AVATAR_TYPE.add("image/jpeg");
        AVATAR_TYPE.add("image/png");
        AVATAR_TYPE.add("image/bmp");
        AVATAR_TYPE.add("image/gif");
    }


	
    @RequestMapping("/changeAvatar")
    public JsonResult changeAvatar(HttpSession session,
                                           @RequestParam("file") MultipartFile file){

        //这里面抛出的异常是我们自定义的异常,根据项目需要修改
        if (file.isEmpty()){
            throw new FileEmptyException("文件为空");
        }
        if (file.getSize() > AVATAR_MAX_SIZE){
            throw new FileSizeException("文件大小超出限制");
        }
        if (!AVATAR_TYPE.contains(file.getContentType())){
            throw new FileTypeException("文件类型异常");
        }

        //获取session中的上传路径
        String parent = session.getServletContext()
                .getRealPath("upload");

        //判断这个路径上面的文件是否存在,不存在就创建
        File dir = new File(parent);
        if (!dir.exists()){
            dir.mkdirs();
        }
        //获取文件的名称
        String originalFilename = file.getOriginalFilename();
        //获取文件后缀名suffix
        int index = originalFilename.lastIndexOf(".");
        String suffix = originalFilename.substring(index);

        //使用uuid重新生成文件名
        String fileName = UUID.randomUUID().toString().toUpperCase() + suffix;

        //将file文件中的数据写入到dest中
        File dest = new File(dir,fileName);
        try {
            file.transferTo(dest);
        } catch (FileStateException e){
            throw new FileSizeException("文件状态异常");
        } catch (IOException e) {
            throw new FileUploadIOException("文件读写异常");
        }

        //获取到文件最后要上传的路径
        String avatar = "/upload/" + fileName;

        //根据业务调用定义的service层的方法,进行操作
        userService.changeAvatar(getuidFromSession(session),avatar,getUsernameFromSession(session));

        return new JsonResult<>(OK,avatar);
    }
  • 前端代码

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/950575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号