基于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工作流-高级篇
9474 1
|
JavaScript 前端开发
若依框架文档开发手册----开发中常用功能模块(中)
若依框架文档开发手册----开发中常用功能模块
4854 0
|
存储
若依框架 --- pdf文件上传预览功能实现
若依框架 --- pdf文件上传预览功能实现
1284 0
|
JavaScript Java
springboot和vue项目如何上传图片,结合若依框架实现
springboot和vue项目如何上传图片,结合若依框架实现
1015 0
|
数据可视化 前端开发 Java
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(一)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
5862 0
|
前端开发 数据库 对象存储
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(一)
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(一)
1528 0
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持formdesigner的本地图片上传与回显的功能实现
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持formdesigner的本地图片上传与回显的功能实现
272 2
|
前端开发 Java API
SpringBoot整合Flowable【07】- 驳回节点任务
本文通过绩效流程的业务场景,详细介绍了如何在Flowable工作流引擎中实现任务驳回功能。具体步骤包括:获取目标任务节点和当前任务节点信息,进行必要的判空和逻辑校验,调用API完成节点回退,并清理相关脏数据(如历史任务和变量)。最后通过测试验证了驳回功能的正确性,确保流程能够成功回退到指定节点并清除中间产生的冗余数据。此功能在实际业务中非常有用,能够满足上级驳回自评等需求。
2662 0
SpringBoot整合Flowable【07】- 驳回节点任务
|
人工智能 搜索推荐 iOS开发
探索iOS开发的未来趋势
【8月更文挑战第20天】随着技术的快速演进,iOS开发领域不断迎来新的挑战和机遇。本文将深入探讨iOS开发的当前状况及其面临的主要问题,同时预测未来的发展趋势,并讨论开发者如何适应这些变化以保持竞争力。