vue3实现前端传到oss

安装OSS SDK:

bash
npm install ali-oss
在Vue组件中引入OSS SDK:

javascript
import OSS from 'ali-oss';
在组件中创建OSS客户端实例:

javascript
const client = new OSS({  
  region: '<Your OSS Region>',  
  accessKeyId: '<Your AccessKeyId>',  
  accessKeySecret: '<Your AccessKeySecret>',  
  bucket: '<Your Bucket Name>'  
});
在模板中创建一个文件输入元素:

html
<template>  
  <div>  
    <input type="file" @change="handleFileUpload" />  
  </div>  
</template>
在组件的methods中实现文件上传方法:

javascript
methods: {  
  async handleFileUpload(event) {  
    const file = event.target.files[0];  
    const options = {  
      progress: (p) => console.log(`progress: ${p * 100}%`) // 打印上传进度信息(可选)  
    };  
    try {  
      const result = await client.multipartUpload('object-name', file, options);  
      console.log(result); // 上传成功后的结果信息  
    } catch (error) {  
      console.error(error); // 上传失败时的错误信息  
    }  
  }  
}
在模板中添加一个按钮或其他触发器,用于触发文件选择和上传操作。例如:

html
<template>  
  <div>  
    <input type="file" @change="handleFileUpload" />  
    <button @click="submitFile">上传文件</button>  
  </div>  
</template>
在组件的methods中添加提交文件的方法:

javascript
methods: {  
  // ... 其他方法 ...  
  async submitFile() {  
    // 选择文件并触发上传操作,例如使用第三方库或自定义逻辑实现文件选择和上传。  
  }  
}
请确保替换代码中的<Your OSS Region>、<Your AccessKeyId>、<Your AccessKeySecret>和<Your Bucket Name>为实际的值。此示例仅为简单演示,你可以根据自己的需求进行适当的调整和扩展。

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用第三方库 `ali-oss` 来完成该功能。具体操作可以参考以下示例代码: ```javascript <template> <el-upload action="" :before-upload="beforeUpload" :on-success="onSuccess" :on-error="onError" :headers="{ 'x-oss-security-token': ossToken }" :data="{ key: uploadedKey }" :file-list="fileList" multiple> <el-button size="small" type="primary">上传文件</el-button> </el-upload> </template> <script> import OSS from 'ali-oss'; export default { data() { return { fileList: [], uploadedKey: '', ossToken: '', }; }, methods: { async beforeUpload(file) { // 获取 OSS Token const response = await this.$http.get('https://example.com/get-oss-token'); if (response.data.code !== 0) { this.$message.error('获取 OSS Token 失败'); return false; } this.ossToken = response.data.data; // 构造上传参数 const client = new OSS({ region: 'oss-cn-hangzhou', // OSS Bucket 所在地域 accessKeyId: 'your-access-key-id', accessKeySecret: 'your-access-key-secret', stsToken: this.ossToken, bucket: 'your-bucket-name', }); const key = `uploads/${file.name}`; this.uploadedKey = key; const info = await client.multipartUpload(key, file, { progress: (p) => { console.log(`Progress: ${p}`); }, meta: { year: '2022' } }); }, onSuccess(response, file, fileList) { this.$message.success('文件上传成功'); }, onError(error, response, file) { this.$message.error('文件上传失败'); }, } }; </script> ``` 注意:上传过程中需要先获取阿里云OSS Token,并且在请求头中加上 `x-oss-security-token` 参数,同时需要设置 OSS 上传参数:Access Key ID,Access Key Secret,STS Token 和 Bucket Name。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值