最近天天赶着写小程序,没什么空余时间,所以没怎么写博客,但开发小程序过程中踩了不少坑,到时候可以总结一下。

今天先写下在小程序中如何上传文件至七牛云。

首先去这里下载小程序上传的 SDK,文件在 sdk 目录下。然后在代码中引入就行了。先放上我完整的上传函数

uploadImage(){
          // 引入七牛的上传sdk
      const qiniuUploader = require("../../../../../static/lib/qiniuUploader.js")
      // 调用微信的选择图片 API
      wx.chooseImage({
        success: data => {
          // 图片的路径数组
          let {tempFilePaths} = data
          // 选择成功后显示正在上传的 loading
          wx.showLoading({
            title: '正在上传',
            mask: true
          })
          // 由于是数组,所欲需要循环将每张图片依次上传
          tempFilePaths.map((r,i) => {
            // getQiniu 函数用于获取一些上传的参数,比如 token,服务器地址,绑定的域名等
            getQiniu().then(res => {
              // token
              let uptoken = res.data.val.token
              // 绑定的域名
              let domain = res.data.bucket_url
              // 服务器地址
              let uploadURL = res.data.up_server
              // 开始上传
              qiniuUploader.upload(
                r, //上传的图片
                (req) => {  //回调 success
                  // code...
                }, (error) => { //回调 fail
                  console.log('error: ' + error);
                },
                {
                  // region 要根据你获取到或已知的的上传服务器地址去对应相应的地区,对应表可见下文或 Github 的 README.md
                  region: 'ECN',
                  uptoken: uptoken,
                  uploadURL: uploadURL,
                  domain: domain,
                })
            })
            // 最后一张上传完成后关闭 loading
            if(i === tempFilePaths.length){
              wx.hideLoading()
            }
          })
        }
      })
    },
存储区域 区域代码 HTTPS 地址
华东 ECN https://up.qiniup.com
华北 NCN https://up-z1.qiniup.com
华南 SCN https://up-z2.qiniup.com
北美 NA https://up-na0.qiniup.com
新加坡 ASG https://up-as0.qiniup.com