微信公众号H5页面上传图片-jsdk(其他无法上传)-vue

微信内置浏览器无法利用原生或者其他封装好的组件上传图片到服务器,其根本原因就在于无法取得 file 文件.但是可以获得 base64格式上传给后台。但是一旦后台设置的图片大小限制,就会导致 因 base64过大而上传不了的问题出现。所以用微信jsdk也是一种好的解决方案

1.引入微信jsdk
2. 注入配置
3.给个按钮发起调用,js如下
		 ul(e){
              let that = this;
                     wx.chooseImage({
                      count: 1,
                      sizeType: ['original', 'compressed'],
                      sourceType: ['album', 'camera'],
                      success (res) {
                      			//res.locallds 可用于图片src预览
                        	that.syncUpload(res.localIds);  //调用上传到服务器的函数
                      }
                    })
                }   		 
            },
          syncUpload(localIds) {
             let that =this;
             var localId = localIds.pop();
             wx.uploadImage({
                 localId: localId,     // 需要上传的图片的本地ID,由chooseImage接口获得  
                 isShowProgressTips: 1,           // 默认为1,显示进度提示  
                 success: function (res) {
                    let serverId = res.serverId; // 返回图片的服务器端serverId  
                         $.ajax({
                            url: "此处接口",
                            type: "GET",
                            data: {
                               media_id:serverId
                            },
                            success: function (res) {           //成功回调
											//res
                            },
                            error:function(e){
                                   //e
                            }
                        })
                     
                }
             });
         	},  
4.后端利用微信的素材库接口获取上传图片,并将图片传到阿里云服务器,返回图片地址
微信素材库获取图片链接	
获取上传图片微信API: "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=token&media_id=serveId
1.token可以通过微信提供的方法获取
2.serveId 是前端传过来的serveId
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值