前端oss 上传文件

152 阅读1分钟
  • 安装oss
npm install ali-oss --save


  • 引入oss
const OSS = require('ali-oss');
export default function Client(data='incker') {
  return new OSS({
    region: "oss-cn-shanghai",
    accessKeyId: "LTAI4FhiSmknXK29qPs35ubn",
    accessKeySecret: "QgzEO4yVwvpenwchgfUUYv0ggR6Mn3",
    bucket: data,
    secure:true,
  })
}
  • 将图片转成文件
import Client from "@/util/ossClient"
dataURLtoFile(dataurl, filename) { //将base64转换为文件
  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 File([u8arr], filename, {
    type: mime
  });
},
  • 上传图片
uploadFiles(fileObject){
  // let client = Client()
  let that = this
  let client = Client()  // 可以自定义bucket
  let fname = 'carterIpad/'+`${new Date().getTime()}.png` //自定义文件名
  client.put(fname, this.dataURLtoFile(fileObject,fname)).then(res=>{
    this.$store.commit('updateResultPic',res.url)
    that.addCar(res.url)
  });
},