广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序实现上传图片
  • 944
分享到

微信小程序实现上传图片

2024-04-02 19:04:59 944人浏览 独家记忆
摘要

本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下 //wxml <button class='button' bingtap="uploadSom

本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下

//wxml <button class='button' bingtap="uploadSomeMsg">上传</button>    
          <view class="uploadImgBox">
            <view class='smallImgBox'>
              <block wx:for="{{img_arr}}" wx:key="index">
                <view class='loGoinfo'>
                  <image class='logoinfo' mode="aspectFill" src='{{item}}' data-index="{{index}}" bindtap="previewImg"
                    bindlongpress="deleteImg" name="headimage" ></image>
                </view>
              </block>
              <image bindtap='getLocalityImg' class='moreImg' src="../../images/uploadPictures.png">
              </image>
            </view>
            <view>
          </view> 
</view>
//wxss
.uploadImgBox {
  margin: 30rpx 0;
}

.logoinfo {
  height: 180rpx;
  width: 180rpx;
  margin: 10rpx ;
}

.smallImgBox {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  grid-template-rows: repeat(2,180rpx);
  grid-gap:20rpx 10rpx;
}

.moreImg {
  border-radius: 10rpx;
  height: 180rpx;
  width: 180rpx;
  margin: 20rpx ;
}.button{  
 height: 90rpx;  
 width: 270rpx;  
 font-size: 38rpx;  
 background-color: rgba(146, 163, 45, 0.288);  
 font-weight: 600;  
 color: white;
 } 
 button::after {
  border: none;
} 
//js
Page({
  data: {
    img_arr: [], //储存照片的数组
  },

//https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFile.html  微信小程序上传文件api
  //上传图片到服务器 
  uploadSomeMsg() {
    var that = this
    var adds = that.data.img_arr;
    for (let i = 0; i < this.data.img_arr.length; i += 1) {
      wx.uploadFile({
        url:'Https://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
        filePath: that.data.img_arr[i],
        name: 'content',
        fORMData: {
          'user': adds
        },
        success: function (res) {
          console.log(res, "上传图片啦")
          if (res) {
            wx.showToast({
              title: '已提交发布!',
              duration: 3000
            });
          }
        }
      })
    }
  },

  //从本地获取照片 
  getLocalityImg() {
    let that = this;
    if (this.data.img_arr.length < 5) {
      wx.chooseImage({
        count: 5 - that.data.img_arr.length, //上传图片的数量 当之前上传了部分图片时 ,总数 - 已上传数 = 剩余数   (限制上传的数量)
        sizeType: ['original', 'compressed'],  //可以指定原图或压缩图,默认二者都有
        sourceType: ['album', 'camera'],        //指定图片来源是相机还是相册,默认二者都有
     success(res) {
          console.log(res, "---------上传的图片")

          const tempFiles = res.tempFiles //包含图片大小的数组

          let answer = tempFiles.every(item => {   //限制上传图片大小为2M,所有图片少于2M才能上传
            return item.size <= 2000000
          })
    
          if (answer) {
            that.setData({
              img_arr: that.data.img_arr.concat(res.tempFilePaths),
            })
          }else{
                  wx.showToast({
                title:'上传图片不能大于2M!',
                icon:'none'    
            })
          }

        }
      })

    } else {
      wx.showToast({  //超过图片张数限制提示
        title: '最多上传五张图片',
        icon: 'none',
        duration: 2000
      })

    }
  },

  //删除照片功能与预览照片功能 
  deleteImg(e) {
    let that = this;
    let img_arr = that.data.img_arr;
    let index = e.currentTarget.dataset.index;  //获取长按删除图片的index
    wx.showModal({
      title: '提示',
      content: '确定要删除此图片吗?',
      success(res) {
        if (res.confirm) {
          // console.log('点击确定了');
          img_arr.splice(index, 1);
        } else if (res.cancel) {
          // console.log('点击取消了');
          return false;
        }
        that.setData({
          img_arr: img_arr
        });
      }
    })
  },

  //预览图片
  previewImg(e) {
    let index = e.currentTarget.dataset.index;
    let img_arr = this.data.img_arr;
    wx.previewImage({
      current: img_arr[index],
      urls: img_arr
    })
  },


})

#转换成base64格式

//1__转换本地上传图片

//如果需要上传base64格式图片到后端,可以在上传图片时可以这样转换,其它的和普通接口上传数据一样
          //转换结果
        let data=wx.getFileSystemManager().readFileSync(res.tempFilePaths[0], "base64") 
//`data:image/png;base64,${data}`
//上传时只需要在转换结果前加一个: `data:image/png;base64,${data}`   ,就是完整的图片数据啦

  //2__转换服务器网络图片为base64
    images.forEach(url => {
          let newUrl = `https://dx.showWEB.net/upload${url}` //需拼上前缀才能下载网络图片

        this.imageToBase(newUrl).then((res)=>{
          this.data.img_arr.push(res)
          this.setData({
            img_arr:this.data.img_arr
          })
          })

        })


  imageToBase(img) {
   return new Promise((resolve, reject)=>{
      wx.downloadFile({ //先下载图片
        url: img,
        success(res) {
          if (res.statusCode === 200) {
            wx.playVoice({
              filePath: res.tempFilePath //选择图片返回的相对路径
            })
            resolve(res.tempFilePath)
          }
        }
      })
    })
  },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 微信小程序实现上传图片

本文链接: https://www.lsjlt.com/news/152504.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序实现上传图片
    本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下 //wxml <button class='button' bingtap="uploadSom...
    99+
    2022-11-13
  • 微信小程序实现图片上传
    微信小程序实现图片上传 最近做了个小程序,涉及到了图片上传的功能,今天给大家详细介绍下如何实现小程序图片上传,话不多说先上代码 首先是静态布局和样式部分 .wxml代码部分 ...
    99+
    2023-09-07
    微信小程序 小程序 微信
  • 微信小程序实现上传图片小功能
    本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下 用到的apiwx.chooseMedia(); 用于拍摄或从手机相册中选择图片或视频 功能:点击上传图...
    99+
    2022-11-13
  • 微信小程序实现图片上传功能
    微信小程序实现图片上传功能随着移动互联网的发展,微信小程序已经成为了人们生活中不可或缺的一部分。微信小程序不仅提供了丰富的应用场景,还支持开发者自定义功能,其中包括图片上传功能。本文将介绍如何在微信小程序中实现图片上传功能,并提供具体的代码...
    99+
    2023-11-21
    微信小程序 图片上传 功能实现
  • 微信小程序如何实现上传图片
    这篇文章主要介绍微信小程序如何实现上传图片,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 一 小程序端user.wxml<view class='u...
    99+
    2022-10-19
  • 微信小程序实现上传图片的功能
    本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下 效果图 WXML <view class="img-wrap"> <vie...
    99+
    2022-11-12
  • 微信小程序实现图片上传(清晰版)
    在wxml文件中添加一个按钮和一个image标签用于显示上传的图片 选择图片 ...
    99+
    2023-08-31
    微信小程序 小程序 前端
  • 微信小程序图片上传组件实现图片拖拽排序
    目录引言首先来看效果组件设计使用方式总结引言 图片上传组件是一个组件库目前来看必不可少的功能了。笔者近日给自己开源的toy工具库也添加了这一功能。相比原生和大部分组件库来说,它不仅支...
    99+
    2022-11-13
  • 微信小程序图片上传功能怎么实现
    这篇文章主要介绍“微信小程序图片上传功能怎么实现”,在日常操作中,相信很多人在微信小程序图片上传功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序图片上传功能怎么实现”的疑惑有所帮助!接下来...
    99+
    2023-06-30
  • 微信小程序实现图片裁剪并上传功能
    微信小程序实现图片裁剪并上传功能随着微信小程序的快速发展,越来越多的开发者开始关注微信小程序的开发技巧和功能实现。其中,图片裁剪并上传功能是一个常见的需求,本文将介绍如何在微信小程序中实现图片裁剪并上传的功能,并提供具体的代码示例。一、功能...
    99+
    2023-11-21
    微信 小程序 图片裁剪 上传
  • 微信小程序图片上传功能的实现方法
    目录前言首先是静态布局和样式部分下面是js的部分,我已详细备注~~~总结前言 最近做了个小程序,涉及到了图片上传的功能,今天给大家详细介绍下如何实现小程序图片上传,话不多说先上代码 ...
    99+
    2022-11-13
  • 微信小程序实现多文件或者图片上传
    本文实例为大家分享了微信小程序实现多文件或者图片上传的具体代码,供大家参考,具体内容如下 html <view class="list1">     <view c...
    99+
    2022-11-13
  • 微信小程序如何实现上传图片到服务器
    这篇文章主要介绍了微信小程序如何实现上传图片到服务器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。上传图片到服务器:1.先在前端写一个选择图...
    99+
    2022-10-19
  • 微信小程序怎么实现多文件或图片上传
    本文小编为大家详细介绍“微信小程序怎么实现多文件或图片上传”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序怎么实现多文件或图片上传”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。html<view&...
    99+
    2023-07-02
  • 微信小程序如何实现上传图片到php服务器
    这篇文章将为大家详细讲解有关微信小程序如何实现上传图片到php服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。js代码如下 submitPhoto(){ &...
    99+
    2022-10-19
  • 微信小程序实现图片上传功能的思路与源码
    目录前言实现思路:源码文件总结前言 手机上传图片的功能大家一定都用过吧,今天教你用微信小程序实现这个小功能。 实现效果如下: 实现思路: 首先我们需要定义一个存放图片的数组,通过方...
    99+
    2022-11-16
    微信小程序图片上传功能 微信小程序 图片上传 微信小程序如何上传图片
  • 微信小程序如何实现图片上传+服务端接收功能
    小编给大家分享一下微信小程序如何实现图片上传+服务端接收功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这次介绍下小程序当中常...
    99+
    2022-10-19
  • 小程序实现图片裁剪上传
    本文实例为大家分享了小程序实现图片裁剪上传的具体代码,供大家参考,具体内容如下 <!--图片展示 --> <view bindtap='upEwm' data-wh...
    99+
    2022-11-13
  • 微信小程序实现裁剪图片大小
    本文实例为大家分享了微信小程序实现裁剪图片大小的具体代码,供大家参考,具体内容如下 效果图 .wxml <button bindtap="uploadtap">上传图片...
    99+
    2022-11-13
  • 微信小程序中如何封装多张图片上传api
    这篇文章给大家分享的是有关微信小程序中如何封装多张图片上传api的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下export default class...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作