E运用上传图片

先看效果:
在这里插入图片描述
本文主要写js
在这里插入图片描述
1、选择图片-----------------------------------------------------------------------

upload:function(){//选择照片
 var that = this;
  dd.chooseImage({
    count: 3,
    success: (res) => {
      that.getImageInfo(res)
    },
    fail:(err)=>{
      if(err.error===11){
        console.log('取消上传')
      }
    }
  });
 },

2、显示图片------------------------------------------------------------------------

 getImageInfo:function(res){//显示图片
  var that = this;
  var paths = that.data.images//符合2:1的留下来
  var errPaths = that.data.errPaths//不符合的放在数组里面
  res.filePaths.map(function(path){
    dd.getImageInfo({
      src:path,
      success:(res)=>{
        if(res.width/res.height===2){
          paths.push({
            "path":path,
            "isSuccess":true
          })
        }else{
          errPaths.push(path)
          paths.push({
            "path":path,
            "isSuccess":false
          })
        }
        that.setData({
          images:paths,
          isupblank:false,
          errPaths:errPaths
        })
      }
    })
  })
 },

3、删除图片功能---------------------------------------------------------------------

deleteImg:function(e){//删除图片
  var that = this;
  var $index = e.target.dataset.index
  dd.showToast({
    type: 'success',
    content: '删除成功',
    duration: 3000,
  });
  that.setData({
    images: that.data.images.filter((item,index) => index !==$index),
    isupblank:false
  })
  if(that.data.images.length===0){
    console.log('没照片')
    this.setData({
      isupblank:true
    })
  }
 },

4、提交表单功能--------------------------------------------------------------

var that =this;
   console.log(that.data.images.length)
   if(that.data.images.length===0){
    dd.showToast({
      type: 'exception',
      content: '请先选择图片!',
      duration: 3000,
    });
   }else{
    console.log(that.data.errPaths.length)
    if(that.data.errPaths.length!==0){
      dd.showToast({
        type: 'exception',
        content: '请先删除不符合规格的图片!',
        duration: 3000,
      });
    }else{
        dd.showLoading({
         content: '提交中...',
        });
     	// 将选择的图片组成一个Promise数组,准备进行并行上传
      const arr = this.data.images.map(item=> {
            return  dd.uploadFile({
			  url: '请使用自己服务器地址',
			  fileType: 'image',
			  fileName: 'file',
			  filePath: item.path,
			})
          })

      // 开始并行上传图片
      Promise.all(arr).then(res => {
        // 上传成功,获取这些图片在服务器上的地址,组成一个数组
        return res.map(item => JSON.parse(item.data).url)
      }).catch(err => {
        console.log(">>>> upload images error:", err)
      }).then(urls => {
        // 调用提交后台的接口
        return dd.httpRequest({
		  url: 'http://httpbin.org/post',
		  method: 'POST',
		  data: {
		    from: '钉钉',
		    production: 'Dingtalk',
		  },
		  dataType: 'json')}
      }).then(res => {
        // 保存问题成功,返回上一页(列表页)
        dd.navigateBack()
      }).catch(err => {
        console.log(">>>> create question error:", err)
      }).then(() => {
        dd.hideLoading()
      })
	}

本文可参考微信小程序上传图片 [https://www.jianshu.com/p/c1e0574ee63d]
有什么不懂得欢迎留言,希望能帮到大家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值