VUE上传文件到阿里云OSS

11 篇文章 2 订阅

VUE上传文件到阿里云OSS

时间:2021-01-08
版本:ali-oss ^6.11.2

安装

推荐npm安装,因为使用npm安装,所以此教程理论上和node.js后端的使用方式是通用的。

npm install ali-oss --save
yarn add ali-oss

初始化

let OSS = require('ali-oss');

let client = new OSS({
  // region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
  // oss-cn-hongkong.aliyuncs.com则填写oss-cn-hongkong
  region: '<oss region>',
  //云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用STS方式来进行API访问
  accessKeyId: '<Your accessKeyId(STS)>',
  accessKeySecret: '<Your accessKeySecret(STS)>',
  stsToken: '<Your securityToken(STS)>',
  bucket: '<Your bucket name>'
});

其中,使用STS临时授权访问OSS的情况下,才需要上传stsToken,否则可以不定义。
其值一般访问自己app的服务器获取。
node服务器如何获取STS临时授权
php服务器如何获取STS临时授权

上传

可上传的三种文件类型,可以是File,Blob,也可以是Buffer

// const data = '<File Object>';
// or const data = new Blob('content');
// or const data = new OSS.Buffer('content'));
let result = await client.put(upload_path, data);

如果data是dataURL类型,则先转为Blob然后再上传。

let updata = util.dataURLtoBlob(data);
let result = await client.put(upload_path, updata);

转换函数

dataURLtoBlob(dataurl) {  
  var arr = dataurl.split(','),
      mime = arr[0].match(/:(.*?);/)[1],
      bstr = atob(arr[1]),
      n = bstr.length,
      u8arr = new Uint8Array(n);
  while (n--) {
      u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], { type: mime });
},

上传路径upload_path可以直接是文件名,也可以是相对路径。最好填写相对路径。例如upload/image/IMG_2342.jpg

官方文档参考地址

安装:https://help.aliyun.com/document_detail/64041.html
上传:https://help.aliyun.com/document_detail/64047.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Vue上传图片到阿里云OSS,你可以按照以下步骤进行操作: 1. 安装依赖:首先,你需要安装ali-oss这个阿里云OSSJavaScript SDK。可以使用npm或者yarn进行安装: ```shell npm install ali-oss --save # 或者 yarn add ali-oss ``` 2. 创建OSS实例:在你的Vue组件中,引入ali-oss,并创建一个OSS实例。在创建实例时,你需要提供阿里云OSS的相关配置,包括accessKeyId、accessKeySecret、region和bucket等信息。例如: ```javascript import OSS from 'ali-oss'; const client = new OSS({ accessKeyId: 'your_access_key_id', accessKeySecret: 'your_access_key_secret', region: 'your_region', bucket: 'your_bucket_name' }); ``` 请将上述代码中的`your_access_key_id`、`your_access_key_secret`、`your_region`和`your_bucket_name`替换为你自己的阿里云OSS配置信息。 3. 处理文件上传:在Vue组件中,你可以使用input[type="file"]元素来接收用户选择的文件。然后,通过监听change事件,获取到用户选择的文件对象。接下来,你可以使用OSS实例的`put`方法将文件上传阿里云OSS。例如: ```javascript // 在模板中添加input[type="file"]元素 <input type="file" @change="handleFileUpload"> // 在Vue组件中定义处理文件上传的方法 methods: { async handleFileUpload(event) { const file = event.target.files[0]; try { // 生成唯一的文件名 const fileName = `${Date.now()}-${file.name}`; // 将文件上传阿里云OSS const result = await client.put(fileName, file); console.log('文件上传成功', result); // 在这里可以将上传成功后的文件URL保存到数据库或者展示在页面上等操作 } catch (error) { console.error('文件上传失败', error); } } } ``` 在上述代码中,`handleFileUpload`方法会在用户选择文件后被调用。它会获取到用户选择的文件对象,并使用OSS实例的`put`方法将文件上传阿里云OSS上传成功后,你可以根据需要对文件URL进行后续处理。 希望以上步骤能够帮助到你。如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值