前端上传到oss

安装oss

npm install ali-oss --save

import OSS from "ali-oss"; //引入oss


export async function ossClient(file, name) {

  if (!name) {
   // 自定义文件上传的名字
    name = "tools/material/avatar_lib/";
  }
  let fileName = `${name}img${Date.parse(new Date())}oss.png`;

   //这里的file文件是本地选择好图片的临时url地址,需要转换为blob格式
  const imgBlob = await fetch(file).then((r) => r.blob());
  const imgFile = new File([imgBlob], fileName, { type: imgBlob.type });
  
  var client = new OSS({

    //地区信息根据自己的地方信息选择不同的字段
    region: "oss-cn-hangzhou.aliyuncs.com",

    //下面的字段都是后端返回的缺一不可
    accessKeyId: data.accessid,
    accessKeySecret: data.access_secret,
    stsToken: data.security_token,
    bucket: data.bucket_name,
    endpoint: data.endpoint,
  }); //后端提供数据

  // 自定义请求头
  const headers = {
    
    "Content-Disposition": "inline",
  };

  // let fileName = `img${Date.parse(new Date())}${imgFile.name}`;
  try {
    const result = await client.put(fileName, imgFile, { headers });
    return result;
  } catch (error) {
    console.error("上传失败", error);
    // 处理上传失败的情况
  }
}

页面使用

<script setup>

//此路径为封装上传oss的js文件路径
import { ossClient } from "@/utils/alioss.js";


const onChooseImg = () => {
  uni.chooseImage({
    count: 1, //默认9
    sizeType: ["compressed"], //可以指定是原图还是压缩图,默认二者都有
    sourceType: ["album"], //从相册选择
    success: async (res) => {
     // console.log(res);
      let result = await ossClient(res.tempFilePaths[0]);
     // console.log(result, "返回值");
    },
  });
};

</script>

<template>

   <view @tap="onChooseImg">选择图片</view>

</template>

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值