微信小程序上传图片和文件

news2025/2/12 8:23:37

1.从微信里选择图片或文件上传

使用的vant的上传组件  原生用 wx.chooseMessageFile()

html

 <!-- 从微信上面选择文件 -->
    <van-uploader file-list="{{ file }}" bind:after-read="afterRead" max-count="{{3}}" deletable="{{ true }}" bind:delete="deleteAll" accept="all">
      <van-button custom-class="fup" square icon="plus" type="default"></van-button>
    </van-uploader>

max-count 是限制上传图片数量 可以不设置该属性

 

 

 js

// 从微信选择上传文件
  afterRead(e) {
    let that = this
    console.log("上传的文件:", e.detail.file);
    wx.uploadFile({
      accept: "all",
      url: 'http://www.com/upload', // 仅为示例,非真实的接口地址
      filePath: e.detail.file.url,
      name: 'file',
      header: {
        'token': wx.getStorageSync("token"),// 请求需要token就带,不需要就删除
      },
      success(res) {
        console.log(res);
        let data = JSON.parse(res.data)
        data.data.name = e.detail.file.name
        if (data.code == 1) {
          wx.showToast({
            icon: 'none',
            title: '上传成功!',
            duration: 2000
          })
          // 上传完成需要更新 fileList
          let file = that.data.file
          file.push(data.data)
          that.setData({
            file
          })
          console.log(that.data.file);
        } else {
          wx.showToast({
            icon: 'none',
            title: '上传失败!',
            duration: 2000
          })
        }
      },
    });
  },
  // 删除上传文件
  deleteAll(e) {
    console.log(e);
    let filearr = this.data.file
    filearr.splice(e.detail.index, 1)
    this.setData({
      file: filearr
    })
    console.log(this.data.file);
  },

2.从相册选择图片上传

html 

 <!-- 从相册选择图片 -->
    <view style="display: flex;justify-content: start;flex-wrap: wrap;margin-top: 20rpx;">
      <view wx:for="{{file}}" wx:key="{{index}}" class="img">
        <image src="{{item.url}}" mode="widthFix" />
        <view class="del" bindtap="deleteAll" data-index="{{index}}">
          <van-icon name="cross" />
        </view>
      </view>
    <van-button custom-class="fup" bindtap="pushimg" square icon="plus" type="default"></van-button>
    </view>

js

// 删除上传文件
  deleteAll(e) {
    console.log(e);
    let filearr = this.data.file
    filearr.splice(e.detail.index, 1)
    this.setData({
      file: filearr
    })
    console.log(this.data.file);
  },
  // 从相册选择图片
  pushimg() {
    let that = this
    wx.chooseImage({ // 本地资源上传到服务器API
      success: function (e) {
        console.log(e);
        var tempFilePaths = e.tempFilePaths;
        wx.uploadFile({
          accept: "all",
          url: 'http://www.com/upload', // 指定服务器接口URL
          filePath: tempFilePaths[0], // 本地文件路径,即选择文件返回的路径
          header: {
            'token': wx.getStorageSync("token"),// 请求需要token就带,不需要就删除
          },
          name: 'file', // 上传文件的key,后台要用到
          success: function (res) { //成功后的回调函数
            console.log(res);
            let data = JSON.parse(res.data)
            data.data.name = new Date()
            if (data.code == 1) {
              wx.showToast({
                icon: 'none',
                title: '上传成功!',
                duration: 2000
              })
              // 上传完成需要更新 fileList
              let file = that.data.file
              file.push(data.data)
              that.setData({
                file
              })
              console.log(that.data.file);
            } else {
              wx.showToast({
                icon: 'none',
                title: '上传失败!',
                duration: 2000
              })
            }
          }
        })
      }
    })
  },

less 

.img {
  position: relative;
  width: 80px;
  margin-right: 15rpx;
  overflow: hidden;
  image {
    width: 100%;
  }

  .del {
    color: #ffffff;
    background-color: #000000;
    width: 40rpx;
    height: 40rpx;
    position: absolute;
    text-align: center;
    top: -13rpx;
    right: -13rpx;
    border-radius: 50%;
    z-index: 99;
    font-size: 20rpx;
    padding-top: 10rpx;
    padding-right: 10rpx;
    box-sizing: border-box;
  }
}

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

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

相关文章

GrapeCity Documents for PDF (GcPdf) 6.2 Crack

GrapeCity PDF 文档 (GcPdf) 改进了对由 GcPdf 以外的软件生成的现有 PDF 文档的处理 在新的 v6.2 版本中&#xff0c;GcPdf 增强了 PDF 文档的加载和保存&#xff0c;并提供以下优势&#xff1a; GcPdf 现在可以加载和保存可能不严格符合 PDF 规范的 PDF 文档。GcPdf 现在将…

典籍研读+书法精进 暄桐「见道明心的笔墨」课程开课啦

8月12日&#xff0c;《林曦老师的线上直播书法课》之「见道明心的笔墨」就要开课啦。林曦老师将带我们去往中国文人精神世界的后花园&#xff0c;一起阅读《金刚经》《老子》等典籍。是不是很期待&#xff1f; 在2011年&#xff0c;暄桐成立的最初&#xff0c;课程便是面向零基…

Opencv项目实战:24 手势识别的石头剪刀布

目录 0、项目介绍 1、效果展示 2、项目搭建 3、项目代码展示与部分讲解 pyzjr库 游戏实现思路 4、项目资源 5、项目总结 0、项目介绍 简单的自娱自乐的计算机视觉互动游戏&#xff0c;石头剪刀布&#xff0c;使用random生成随机数&#xff0c;用于模拟AI窗口随机出拳&…

SecureCRT密码破解(实验环境:win10,SecureCRT Version 9.1.0 (x64 build 2579))

实验环境&#xff1a;win10&#xff0c; SecureCRT&#xff1a;Version 9.1.0 (x64 build 2579) 1. SecureCRTCipher.py 文件 #!/usr/bin/env python3 import os from Crypto.Hash import SHA256 from Crypto.Cipher import AES, Blowfishclass SecureCRTCrypto:def __init_…

如何选择适合自己的文件传输工具

随着互联网的发展&#xff0c;人们处理文件的需求也随之增加。不管是工作还是生活中&#xff0c;文件传输都是一个非常常见的问题。因此&#xff0c;如何选择适合自己的文件传输工具也越来越重要。在本文中&#xff0c;我将从以下几个方面进行分析和总结&#xff0c;希望能为大…

springboot文件上传和下载接口的简单思路

springboot文件上传和下载的简单思路 文件上传文件下载 文件上传 在springboot中&#xff0c;上传文件只需要在接口中通过 MultipartFile 对象来获取前端传递的数据&#xff0c;然后将数据存储&#xff0c;并且返回一个对外访问路径即可。一般对于上传文件的文件名&#xff0c…

【立创EDA】【0】基本概念

原理图库设计 符号设计 当在元件库中没有找到需要的元件原理图符号时&#xff0c;需要自己手动绘制点击文件-新建-符号进行新建符号 封装库设计 原理图符号对应焊盘 绘制封装时&#xff0c;可以在立创商城寻找元器件对应的数据手册进行参考 PCB绘制 晶振需要包地&#xf…

【STM32RT-Thread零基础入门】 1. 搭建开发环境

文章目录 一、RT-Thread Studio 集成开发环境安装1. 下载2. 安装3. 下载SDK 二、STM32CubeMX 图形化配置工具安装1. 获取安装包2. 安装3. 安装固件库 总结 一、RT-Thread Studio 集成开发环境安装 1. 下载 可以从RT-Thread 官网上获取 RT-Thread studio 最新的安装包&#xf…

解决:django设置DEBUG=false时出现的问题

首先&#xff0c;我用的是django4.2&#xff0c;python3.10版本 本来&#xff0c;如果在settings.py中使用 DEBUG True&#xff0c;那么什么问题也没有&#xff0c;当然&#xff0c;这属于调试模式。 DEBUG True TEMPLATE_DEBUG DEBUGSTATIC_URL /static/ STATICFILES_DI…

计算机视觉的应用10-图片中的表格结构识别与提取实战

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用10-图片中的表格结构识别与提取实战&#xff0c;表格结构识别在信息处理领域中具有广泛应用&#xff0c;但由于表格的多样性和复杂性&#xff0c;以及难以准确解析的布局和格式&#xff0c;传统的方…

如何消除谐波对医疗设备的影响? 安科瑞 顾语欢

1.概述 谐波的危害十分严重&#xff0c;尤其在医院这种医疗设备和化验设备较多的场合。大部分大型医疗设备都是谐波源&#xff0c;比如X光机、CT机等都会产生大量谐波&#xff0c;谐波使电能的生产、传输和利用的效率降低&#xff0c;使电气设备过热、产生振动和噪声&#xff…

opencv进阶01-直方图的应用及示例cv2.calcHist()

直方图是什么&#xff1f; 直方图是一种图形表示方法&#xff0c;用于显示数据中各个数值或数值范围的分布情况。它将数据划分为一系列的区间&#xff08;也称为“箱子”或“bin”&#xff09;&#xff0c;然后统计每个区间中数据出现的频次&#xff08;或频率&#xff09;。直…

supervisor常见错误场景

项目场景&#xff1a; python虚拟环境venv启动supervisor服务 一、类型一 unix:///var/run/supervisor.sock no such file error: <class ‘FileNotFoundError’>, [Errno 2] No such file or directory: file: /home/zhaon/miniconda3/envs/abio_filesvr/lib/python3.…

Stable Diffusion Webui源码剖析

1、关键python依赖 &#xff08;1&#xff09;xformers&#xff1a;优化加速方案。它可以对模型进行适当的优化来加速图片生成并降低显存占用。缺点是输出图像不稳定&#xff0c;有可能比不开Xformers略差。 &#xff08;2&#xff09;GFPGAN&#xff1a;它是腾讯开源的人脸修…

出于网络安全考虑,印度启用本土操作系统”玛雅“取代Windows

据《印度教徒报》报道&#xff0c;印度将放弃微软系统&#xff0c;选择新的操作系统和端点检测与保护系统。 备受期待的 "玛雅操作系统 "将很快用于印度国防部的数字领域&#xff0c;而新的端点检测和保护系统 "Chakravyuh "也将一起面世。 不过&#xf…

Sharding-JDBC概述

前言 ​ 随着业务数据量的增加&#xff0c;原来所有的数据都是在一个数据库上的&#xff0c;网络IO及文件IO都集中在一个数据库上的&#xff0c;因此CPU、内存、文件IO、网络IO都可能会成为系统瓶颈。当业务系统的数据容量接近或超过单台服务器的容量、QPS/TPS接近或超过单个数…

分布式作业调度框架——ElasticJob

1、简介 ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案&#xff0c;由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。 它通过弹性调度、资源管控、以及作业治理的功能&#xff0c;打造一个适用于互联网场景的分布式调度解决方案&#xff0c;…

c语言进阶部分详解(数据在内存中的存储)

大家好&#xff0c;今天要进行梳理的内容是数据在内存中的存储相关内容。 在C语言中&#xff0c;数据在内存中的存储是一个非常重要的概念。了解数据在内存中的存储方式可以帮助我们更好地理解程序的执行过程&#xff0c;优化内存使用&#xff0c;提高程序的性能。 目录 一.数…

5.0SMDJ24CA 瞬态抑制TVS二极管 可过4kV 2Ω测试

瞬态概述 浪涌描述的是存在于电源或信号线上uS级以上的脉冲。通常浪涌产生于雷击或开关瞬变能量。雷击能量可能是由于直击雷或感应雷作用于系统所产生的瞬变能量&#xff0c;开关瞬变能量通常由于配电系统的电源切换&#xff0c;或是负载的变化导致。 雷击浪涌测试目的 GB/T …

QT中的PRO文件怎么进行相关的信息的注释?

小白学开发之QT下的PRO文件怎么进行注释&#xff0c;以及Pro文件的作用 Hello大家好&#xff0c;这里是程序员小白学开发&#xff0c;我是一个刚入门QT的初学者&#xff0c;晕乎晕乎的&#xff01;希望能够随时随地将自己所学的知识分享给大家&#xff0c;带着大学从零基础开始…