微信小程序上传图片

201

上传图片

选择从哪里上传图片

HTML

//点击上传
<view class="recode_upload_item" bindtap="chooseImageTap">
    <text class="iconfont icon-zengjia"></text>
</view>

JS

    chooseImageTap(e) {
      let { index, status } = e.currentTarget.dataset;
      var that = this;
      wx.showActionSheet({
        itemList: ['从相册中选择', '拍照'],
        itemColor: "#00000",
        success: function (res) {
          if (!res.cancel) {
            if (res.tapIndex == 0) {
              that.chooseWxImage('album', index, status)
            } else if (res.tapIndex == 1) {
              that.chooseWxImage('camera', index, status)
            }
          }
        }
      })
    },

调用上传方法

//图片本地路径
    chooseWxImage: function (type, index, status) {
      var that = this;
      var imgsPaths = that.data.imgs;
      wx.chooseImage({
        count: 1,
        sizeType: ['original', 'compressed'],
        sourceType: [type],
        success: function (res) {
          that.upImgs(res.tempFilePaths[0], index, status) //调用上传方法
        }
      })
    },

调用服务器

 //上传服务器
    async upImgs(imgurl, index, status) {
      var that = this;
      let data = {
        token: '',
        img: imgurl
      }
      let imgList = []
      const res = await uploadrequest({ url: '/miniprogram/upload', data })
      let result = JSON.parse(res)
      if (result.code === 200) {
        wx.showToast({
          title: '上传成功',
          icon: 'success',
          image: '',
          duration: 1500,
          mask: true,
          success: (result) => {

          },
          fail: () => { },
          complete: () => { }
        });
        imgList.push({
          file_url: result.data.url
        })
      } else {
        wx.showToast({
          title: '上传失败',
          icon: 'none',
          image: '',
          duration: 1500,
          mask: false,
          success: (result) => {

          },
          fail: () => { },
          complete: () => { }
        });
      }
    },