vue + axios + oss的阿里直传

2 篇文章 0 订阅
2 篇文章 0 订阅

获取服务器上传信息

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返回的状态以及后台服务器返回的数据。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值