微信小程序上传图片到服务端,springboot项目。避免踩坑保姆教程

news2025/1/17 21:41:11

多方查找终于搞懂了如何去上传文件到本地服务器

前端代码

  <view class="operation_row common_mb0">
        <view class="upload_btn" bindtap="clickUpload">
          <image src="../../common/images/icon/icon02.png"></image>
        </view>

        <view class="upload_img" wx:for="{{imagesList}}" wx:key="index">
          <image class="upload_img_del" src="../../common/images/icon/icon03.png" data-index="{{index}}" bindtap="clickDelImg"></image>
          <image src="{{item.tempFilePath}}"></image>
        </view>
      </view>

在这里插入图片描述

小程序端代码

选择图片

  // 上传图片
  clickUpload() {
    const _this = this; 
    wx.chooseMedia({
      count: 9,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      camera: 'back',
      success(res) {
        let imagesList = _this.data.imagesList
        res.tempFiles.forEach(item => {
          imagesList.push(item)
        }) 
        _this.setData({
          imagesList: imagesList
        })
      }
    })
  },

上传图片

// 便利文件数组 
 this.data.imagesList.forEach(item =>{
 
    wx.uploadFile({
      url: _fileurl, //开发者服务器的 url
      filePath: item.tempFilePath, // 要上传文件资源的路径 String类型!!!
      name: 'image', // 文件对应的 key ,(后台用于接收的 key  参看下文 后端 接口的 方法入参 )
      header: {
       'content-type': 'multipart/form-data'
      }, // 设置请求的 header
      formData: {wjName:"wjName"}, // HTTP 请求中其他额外的参数
      success: function (res) {
        debugger
        console.log(res);
      },
      fail: function (res) {
        console.log(res);
      }
     })
  })

服务端代码

uploadFileMinIo(String wjName, MultipartFile image)
wjName: 对应formData: {wjName:“wjName”}
image:对应name: ‘image’, // 文件对应的 key

    /**
     * 上传文件MinIo
     */
    @ApiVersion(value = ApiVersionConsts.API_V1,group = ApiVersionConsts.SWAGGER_API_V1)
    @RequestMapping("/wxupload")
    @ApiOperation(value="上传文件", notes="文件相关接口")
    @PassToken
    public Result uploadFileMinIo(String wjName, MultipartFile image) throws Exception {
 
        // 上传到minio  .  上传到本地 请百度吧,
        String bucketName = minioProperties.getBucketName();
        String fileName = minIoUtil.minioUpload(image, image.getOriginalFilename(), bucketName);
        String url = minIoUtil.getShowUtrl(fileName, bucketName);
        TWjxx build = TWjxx.builder().filename(fileName).url(url).build();
        //格式化时间戳
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
        String nowTime = sdf.format(new Date().getTime());
        //取得图片的格式后缀
        String originalLastName = image.getOriginalFilename();
        String picLastName = originalLastName.substring(originalLastName.lastIndexOf("."));
        //拼接:名字+时间戳+后缀
        String picName = nowTime+"." + wjName + picLastName;
        return Result.success(build);
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1513293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 搭建 PaddleOCR

转自PaddleOCR docker模式 - 简书 目的: 公司要放弃第三方的ocr工具(日语),需要自己搭建训练一套,这篇是搭建 图片要标出文字的选取框 因为是日文所以ocr有专门的工具,只需要文字坐标就好如图 日文的账票需要加密一下 我得环境是 Ubuntu 22.04.1 LTS 1,下载代码 cd /hom…

智能商品管理系统:驱动零售盈利型的数据利器

在数字化浪潮席卷全球的今天&#xff0c;零售业正面临着前所未有的变革。智能商品管理系统作为零售业的“数据利器”&#xff0c;正在以其强大的数据分析能力和智能化的管理手段&#xff0c;助力零售企业实现盈利增长和业务创新。 智能商品管理系统通过集成大数据、云计算、人…

微机综合保护测控装置在某电厂10.5kV厂用电系统改造中的应用

彭姝麟 Acrelpsl 0 引言 某电厂8号机组10.5kV厂用电系统分为两段&#xff0c;即V、VI段。正常工况下V、VI段分段运行&#xff0c;即联络断路器060处于断开位。V段由8GB经051断路器供电&#xff0c;同时还可由IV段047断路器供电&#xff08;紧急备用电源&#xff09;&#xff0…

3、设计模式之工厂模式2(Factory)

一、什么是工厂模式 工厂模式属于创建型设计模式&#xff0c;它用于解耦对象的创建和使用。通常情况下&#xff0c;我们创建对象时需要使用new操作符&#xff0c;但是使用new操作符创建对象会使代码具有耦合性。工厂模式通过提供一个公共的接口&#xff0c;使得我们可以在不暴露…

管理application的secret,在哪个level呢

从安全设计来看&#xff0c;访问控制是非常重要的。除非是完全公开的网页&#xff0c;可以没有任何限制的访问 在实施访问控制的应用application中呢&#xff0c;你的秘钥管理控制在哪个level呢 level -2 没有访问控制&#xff0c;注意这是-2 负二&#xff0c;不是level 2 l…

Python编程从入门到实践中的一些误区

1.num 使用num时python报错&#xff0c;后来查过后才知道是因为python不支持自增或自减&#xff0c;可以用1。 2.字符串和非字符串连接 要先将非字符串转换为字符串类型之后才能连接 print&#xff08;2int&#xff08;‘2’&#xff09;&#xff09;#4 3.关键字参数必须在未…

白酒:生产过程的智能化与自动化升级改造

在当今的工业生产中&#xff0c;智能化与自动化已成为提进一步率、品质和竞争力的关键因素。云仓酒庄紧跟时代步伐&#xff0c;对豪迈白酒的生产过程进行了一系列智能化与自动化升级改造&#xff0c;旨在提升生产效率、确保产品质量的同时&#xff0c;降低生产成本。 首先&…

计算机网络-第7章 网络安全(1)

主要内容&#xff1a;安全威胁与问题、对称密钥密码体制和公钥密码体制、数字签名与鉴别、网络层和运输层安全协议、应用层电子邮件、系统安全&#xff1a;防火墙与入侵检测 当网络中的用户都来自社会各个阶层和部门时&#xff0c;网络中存储和传输的数据需要保护。 7.1 网络安…

​如何使用 ArcGIS Pro 分析爆炸波及建筑

假设在某栋建筑内发生了爆炸&#xff0c;需要根据爆炸的范围分析出来波及的建筑&#xff0c;对于这一需求&#xff0c;我们可以通过ArcGIS Pro来实现&#xff0c;这里为大家介绍一下分析的方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载…

使用DateUtil工具类偏移日期

使用DateUtil工具类偏移日期 一、依赖二、源码三、示例代码 一、依赖 <!--工具依赖--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>二、源码 …

算法通识|选择排序(简单选择排序、堆排序)

Before Writing 内容参考懒猫老师请多支持。 1 选择排序 1-1 简单排序的原理 简单选择排序的主要思想是&#xff1a;每趟排序在当前待排序序列中选出关键码最小的记录&#xff0c;添加到有序序列中。 1-2 堆选择排序的原理 堆排序主要思想是&#xff1a;每次构造一个堆&…

基于Redis实现分布式锁、限流操作(基于SpringBoot)的实现

基于Redis实现分布式锁、限流操作——基于SpringBoot实现 本文总结了一种利用Redis实现分布式锁、限流的较优雅的实现方式本文原理介绍较为通俗&#xff0c;希望能帮到有需要的人本文的demo地址&#xff1a;https://gitee.com/rederxu/lock_distributed.git 一、本文基本实现…

Python常用图片数据方法

文章目录 1. 常用图片数据类型2. 图片的显示2.1 plt.imshow()2.2 使用 turtle 来绘制图片 3.图片ndarray数据的常用切片操作使用 cv2 来读取图片打印数据R G B 通道的获取BGR 转成 RGBcv2 不支持中文路径的解决方法 4 PIL.Image 转成 QImage 或 QPixmap 1. 常用图片数据类型 使…

使用Flask快速搭建轻量级Web应用【第127篇—Flask】

使用Flask快速搭建轻量级Web应用 在Web开发领域&#xff0c;选择适合项目需求的框架至关重要。Flask&#xff0c;一个轻量级的Python Web框架&#xff0c;以其简洁、灵活和易扩展的特性而备受开发者青睐。本文将介绍如何使用Flask迅速搭建一个轻量级的Web应用&#xff0c;并通过…

【C++教程从0到1入门编程】第九篇:STL中Vector类

一、vector的介绍 1.vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&…

web项目抢购模块测试

web项目抢购模块测试 抢购模块(先测后台,再测前台)流程抢购用例编写测试点--后台抢购用例编写测试点--前台用例设计 面试题1: 当你发现研发实现的结果与需求不一致时怎么办? 需求评审的时候:需要确认所有输入类型的校验是针对单独的输入框做的还是在最终提交时校验 抢购模块 需…

三维天地助力科研实验室提质增效

ELN模板是一种系统化记录实验数据的方式,它可以为实验员提供一个标准化的框架,使其可以快速而准确地记录实验过程和结果。 运用ELN模板,能够保障所有实验记录均依照统一标准进行,有效防止人为差异对实验数据精准度造成不良影响。 作为国内知名的实验室数智化领域软件开发服务…

Redis Java客户端Jedis

Jedis所需要的jar包&#xff1a; <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version> </dependency>连接Redis注意事项&#xff1a; 禁用Linux的防火墙&#xff1a;Linu…

SpringBoot(源码解析 + 实现底层机制)

文章目录 1.搭建SpringBoot底层机制开发环境1.创建maven项目2.使用Git管理项目&#xff08;可以略过&#xff09;1.创建一个github存储库2.克隆到本地&#xff0c;复制文件夹的内容3.粘贴到idea项目文件夹&#xff0c;将其作为本地仓库与远程仓库关联 3.pom.xml 引入父工程和场…

RUST 每日一省:rust logo收集

rust的logo集合&#xff0c;看看有没有你喜欢的&#xff0c;挑一个吧&#xff1b; GitHub - XuHugo/rust-logo: Collection of logo images for all rust languages 下边只是挑选了几个&#xff0c;更多的还是看github吧。