Upload 上传文件到自己的腾讯云中
·
1. 需要有自己的云仓库
如何配置自己的云仓库: 请点击
2.复制element-ui (Upload) 上传


把代码复制下来做以修改
需要配置自定义上传
关键属性::http-request=“upload” action="#"
使用自定义行为覆盖默认上传,注意一旦设置自定义上传行为之后,所有的上传操作都需要自己实现,比如数据处理,上传成功之后的后续操作,on-success钩子函数也不会继续触发
<template>
<div>
<!--
show-file-list: 是否显示上传的文件列表
action: '#' 用来指定文件要上传的地址,由于我们需要定制上传动作
这里设为#
:http-request:自定义上传行为(重点)
on-success: 上传成功之后的回调
before-upload: 上传之前的检查
:on-success="handleAvatarSuccess"
-->
<el-upload
class="avatar-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeAvatarUpload"
:http-request="upload"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon" />
</el-upload>
</div>
</template>
<script>
export default {
methods:{
upload(params){
console.log(params) // 请求的数据
}
}
}
</script>

配置 云平台交互
1.安装依赖
npm i cos-js-sdk-v5 --save
2.实例化cos对象(可以写在import 同级)
// 下面的代码是固定写法
const COS = require('cos-js-sdk-v5')
// 填写自己腾讯云cos中的key和id (密钥)
const cos = new COS({
SecretId: 'xxx', // 身份识别ID
SecretKey: 'xxx' // 身份秘钥
})

3.使用cos对象完成上传
upload(res) {
if (res.file) {
// 执行上传操作
cos.putObject({
Bucket: 'xxxxxx', /* 存储桶 */
Region: 'xxxx', /* 存储桶所在地域,必须字段 */
Key: res.file.name, /* 文件名 */
StorageClass: 'STANDARD', // 上传模式, 标准模式
Body: res.file // 上传文件对象
}, (err, data) => {
console.log(err || data)
// 上传成功之后
if (data.statusCode === 200) {
console.log(data)
}
})
}
}

上边的Bucket和Region在这里可以找到
在上传时,cos支持配置**`onProgress`**回调,在这个回调函数中可以拿到当前上传的进度。
cos.putObject({
// 省略其他...
onProgress: (progressData) => {
console.log(JSON.stringify(progressData))
}
}
更多推荐
所有评论(0)