微信小程序端签名直传阿里云oss

思路:
1、第一步,请求后端接口获取签名(我这里文件名是由后端返回的)
2、第二步,将图片上传到阿里云oss

新建一份upload.js文件


export function fileUpload(path) { // path是图片地址
  let _this = this;
  return new Promise((resolve, reject) => {
    wx.request({
	  url: '接口地址', // 请求后端签名
	  success (res) {
	  // 我这里获取到的文件名是不包含后缀的,所以要自己获取后缀
      var data = res.data;
      let suffix = path.split('.')[path.split('.').length - 1] // 获取文件后缀
      let formData = {
        key: data.dir + data.fileName + '.' + suffix,  //文件名
        policy: data.policy,  //后台获取超时时间
        OSSAccessKeyId: data.accessid, //后台获取临时ID
        success_action_status: '200', //让服务端返回200,不然,默认会返回204
        signature: data.signature //后台获取签名
      }
      console.log(formData)
      wx.uploadFile({ // 上传图片
        url: data.host,  //后台给的阿里云存储给的上传地址
        filePath: path, 
        name: 'file', // 图片文件字段名
        formData: formData,
        success: res => {
          if (res.statusCode == 200) { // 请求成功,返回图片地址
            resolve(data.host + '/' + data.dir + data.fileName + '.' + suffix)
          }
        },
        fail: err => {
          uni.showModal({
            content: err.errMsg
          });
        }
      });
    }
  })
}

使用:
引入upload.js

  import {fileUpload} from '../utils/upload.js'

调用上传图片方法:

fileUpload(value).then(res => {
	console.log(res) // 图片地址
})
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页