• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序 上传图片

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

上传图片功能应该是现在比较常见的需求了,但是上传的图片大小、压缩、个数限制以及回显点击放大等还是比较麻烦。

这里我简单以uniapp举例说一下常用的方法以及实现的逻辑

 

首先上传图片需要调用chooseImage ,这里需要说一下count ,默认为最多9可以上传9张图

//最多9张图,this.imgArr为已上传的图片,如果只是1张图的话,可以直接指定count 为1

let count = 9 - this.imgArr.length;
uni.chooseImage({
  count,
  sourceType: [\'album\',\'camera\'],
  sizeType: [\'compressed\'],
  success(res) {
    if(res.errMsg ==\'chooseImage:ok\'){

      //res.tempFilePaths  为返回的图片数组
      console.log(res.tempFilePaths)
    }
  }
})

  

然后需要涉及到给后端传递的数据为什么类型,如果为base64的话,那我们还需对res.tempFilePaths 进行转换

//使用arrayBufferToBase64,但是部分ios机型不兼容
uni.request({
    url,
    method:\'GET\',
    responseType: \'arraybuffer\',
    success: ress => {
        let base64 = wx.arrayBufferToBase64(ress.data); 
	if(type == \'mp4\'){
	    base64=`data:video/mp4;base64,${base64}`
	}else{
	    base64=`data:image/jpg;base64,${base64}`
	}
	console.log(base64)
    }
})    

  

兼容解决方案 

urlTobase64 =(url)=>{
  let type=url.substring(url.lastIndexOf(\'.\')+1)
  if(url.indexOf(\'.jpg\')>0 || url.indexOf(\'.JPG\')>0 || url.indexOf(\'.PNG\')>0 ||         url.indexOf(\'.png\')>0 || url.indexOf(\'ttp://tmp/\')>0 || url.indexOf(\'xfile://tmp\')>0){
    return new Promise((resolve,reject)=>{
        wx.getFileSystemManager().readFile({
	    filePath:url,
            encoding:\'base64\',
	    success:  res=>{
	        let base64=\'\';
		if(type == \'mp4\'){
		    base64=`data:video/mp4;base64,${res.data}`
		}else{
		    base64=`data:image/jpg;base64,${res.data}`
		}
		resolve(base64)
	  }
   })
  })
 }else{
   return new Promise((resolve,reject)=>{
      uni.request({
	   url,
	   method:\'GET\',
	   responseType: \'arraybuffer\',
	   success: ress => {
	     let base64 = wx.arrayBufferToBase64(ress.data); 
		if(type == \'mp4\'){
		  base64=`data:video/mp4;base64,${base64}`
		}else{
		  base64=`data:image/jpg;base64,${base64}`
		}
		resolve(base64)
	   }
      })
    })
  }	
};               

  

  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序入门发布时间:2022-07-18
下一篇:
民宿小程序如何玩转功能裂变发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap