基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(二)

简介: 基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(二)

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

排除路径,增加avatar图片

# security配置
security:
  # 排除路径
  excludes:
    # 静态资源
    - /*.html
    - /**/*.html
    - /**/*.css
    - /**/*.js
    # 公共路径
    - /favicon.ico
    - /error
    # swagger 文档配置
    - /*/api-docs
    - /*/api-docs/**
    # actuator 监控配置
    - /actuator
    - /actuator/**
    #third login
    - /sys/thirdLogin
    - /sys/thirdLogin/**
    - /system/auth
    - /system/auth/**
    #avatar图片
    - /profile
    - /profile/**

2、同时支持本地与oss的上传图片功能实现如下:

/**
     * 头像上传
     *
     * @param avatarfile 用户头像
     */
    @Log(title = "用户头像", businessType = BusinessType.UPDATE)
    @PostMapping(value = "/avatar", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public R<Map<String, Object>> avatar(@RequestPart("avatarfile") MultipartFile avatarfile) {
        Map<String, Object> ajax = new HashMap<>();
        if (!avatarfile.isEmpty()) {
            String extension = FileUtil.extName(avatarfile.getOriginalFilename());
            if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) {
                return R.fail("文件格式不正确,请上传" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "格式");
            }
            if(Constants.UPLOAD_TYPE_LOCAL.equals(uploadtype)) {
               // 上传文件路径
                String filePath = RuoYiConfig.getAvatarPath();
                // 上传并返回新文件名称
                String fileName = null;
        try {
          fileName = localfilehttp + FileUploadUtils.upload(filePath, avatarfile);
        } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
        
                if (userService.updateUserAvatar(getUsername(), fileName)) {
                  ajax.put("imgUrl", fileName);
          // 更新缓存用户头像
                  return R.ok(ajax);
              }
            }
            else {
              SysOssVo oss = iSysOssService.upload(avatarfile);
              String avatar = oss.getUrl();
              if (userService.updateUserAvatar(getUsername(), avatar)) {
                  ajax.put("imgUrl", avatar);
                  return R.ok(ajax);
              }
            }
            
        }
        return R.fail("上传图片异常,请联系管理员");
    }

效果图如下:

相关文章
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
5503 0
|
JavaScript 前端开发
若依框架文档开发手册----开发中常用功能模块(中)
若依框架文档开发手册----开发中常用功能模块
4220 0
|
存储 分布式计算 Hadoop
基于docker的Hadoop环境搭建与应用实践(脚本部署)
本文介绍了Hadoop环境的搭建与应用实践。对Hadoop的概念和原理进行了简要说明,包括HDFS分布式文件系统和MapReduce计算模型等,主要通过脚本的方式进行快捷部署,在部署完成后对HDFS和mapreduce进行了测试,确保其功能正常。
|
前端开发 Java 应用服务中间件
ruoyi-vue前后端分离项目实现一体化打包(前后端合并打包)
ruoyi-vue前后端分离项目实现一体化打包(前后端合并打包)
2190 0
|
JavaScript Java
springboot和vue项目如何上传图片,结合若依框架实现
springboot和vue项目如何上传图片,结合若依框架实现
745 0
|
前端开发 JavaScript 关系型数据库
若依框架------后台路由数据是如何转换为前端路由信息的
若依框架------后台路由数据是如何转换为前端路由信息的
1612 0
|
前端开发 数据库 对象存储
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(一)
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(一)
1047 0
|
8月前
|
监控 JavaScript 前端开发
ry-vue-flowable-xg:震撼来袭!这款基于 Vue 和 Flowable 的企业级工程项目管理项目,你绝不能错过
基于 Vue 和 Flowable 的企业级工程项目管理平台,免费开源且高度定制化。它覆盖投标管理、进度控制、财务核算等全流程需求,提供流程设计、部署、监控和任务管理等功能,适用于企业办公、生产制造、金融服务等多个场景,助力企业提升效率与竞争力。
444 12
|
SQL 数据库 数据安全/隐私保护
什么是数据库子查询?
【8月更文挑战第2天】
501 14
什么是数据库子查询?
|
存储 JavaScript 应用服务中间件
OSS对象存储后端实现+Vue实现图片上传【基于若依管理系统开发】
OSS对象存储后端实现+Vue实现图片上传【基于若依管理系统开发】
2173 0