vue + axios + oss的阿里直传
获取服务器上传信息import axios from 'axios'import store from '@/store'export function getAllOss () { // 获取php服务数据return new Promise((resolve, reject) => {axios.get('获取信息的地址(http://s/getosskey)...
·
获取服务器上传信息
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条内容
所有评论(0)