获取服务器上传信息

import axios from 'axios'
import store from '@/store'
export function getAllOss () { // 获取php服务数据
  return new Promise((resolve, reject) => {
    axios.get('获取信息的地址(http://s/getosskey)')
      .then((res) => {
        resolve(res)
      })
      .catch((err) => {
        reject(err)
      })
  })
}

设置请求参数

因为是文件的传输 所以要
var request = new FormData()

/**
*@author:sinweng12138@163.com
*@params:参数
*@file:文件
*@gObjectName: 文件名称
**/
export function doData (params, file, gObjectName) { // 设置请求参数
  console.log(params)
  var request = new FormData()
  // 文件名字,可设置路径
  request.append('key', 'user/avatar/' + gObjectName)
  // policy规定了请求的表单域的合法性
  request.append('policy', params.policy)
  // Bucket 拥有者的Access Key Id
  request.append('OSSAccessKeyId', params.accessid)
  // 让服务端返回200,不然,默认会返回204
  request.append('success_action_status', '200')
  // 根据Access Key Secret和policy计算的签名信息,OSS验证该签名信息从而验证该Post请求的合法性
  request.append('callback', params.callback)
  request.append('Signature', params.signature)
  // 需要上传的文件filer
  request.append('Filename', 'user/avatar/' + gObjectName)
  request.append('name', gObjectName)
  request.append('file', file, gObjectName)
  return request
}

发送请求

import axios from 'axios'
export function doUpLoad (url, data) {
  return new Promise((resolve, reject) => {
    console.log(data)
    axios({
      url: url,
      method: 'post',
      data: data,
      headers: { 'Content-Type': 'multipart/form-data' }
    })
      .then((res) => {
        resolve(res)
      })
      .catch((err) => {
        reject(err)
      })
  })
}

3部曲后发送请求即可获取阿里OSS返回的状态以及后台服务器返回的数据。

Logo

前往低代码交流专区

更多推荐