首页 > 其他分享 >vue element 上传到七牛云

vue element 上传到七牛云

时间:2024-07-08 14:41:16浏览次数:18  
标签:vue const formData element token key 七牛云 上传

使用网站

  • token生成:点我
  • 七牛云上传接口错误码:点我
  • 七牛云存储区域上传地址:点我

七牛云在线生成token

一般是后端生成,使用接口获取(放在后端比较安全)

// 获取七牛云token
export async function getQiniuToken() {
  const url = '/upload/key';
  const result = await defHttp.get({ url });
  return result || '';
}

上传方法

// 用户上传图片到七牛云
export async function uploadPictureToQiniu(file: File): Promise<string> {
  const qiniuConfig = {
    uploadURL: 'https://up-z2.qiniup.com',
    // 其他配置...
  };
  const uploadKey = `hq-artist/end/end_${Date.now()}${Math.floor(Math.random() * 100)}.png`; // 使用 Date.now() 生成基于时间的唯一标识

  try {
    // 假设 getQiniuToken 是一个返回 Promise 的函数,它获取七牛云的上传令牌
    const token = await getQiniuToken();
    const formData = new FormData();
    formData.append('file', file);
    formData.append('token', token);
    formData.append('key', uploadKey);

    const config = {
      headers: { 'Content-Type': 'multipart/form-data' },
    };

    const response = await axios.post(qiniuConfig.uploadURL, formData, config);
    return response.data.key || uploadKey; // 返回上传的文件key
  } catch (error) {
    // 处理上传过程中可能出现的错误
    console.error('Upload failed:', error);
    throw error; // 重新抛出错误,以便调用者可以进一步处理
  }
}

使用

    <a-upload
      :listType="listType"
      accept="image/*"
      :multiple="multiple"
      :auto-upload="true"
      :headers="headers"
      :data="{ biz: bizPath }"
      v-model:fileList="uploadFileList"
      :beforeUpload="beforeUpload"
      :disabled="disabled"
      :customRequest="uploadQiniu"
      @change="handleChange"
      @preview="handlePreview"
    >
      <div v-if="uploadVisible">
        <div v-if="listType == 'picture-card'">
          <LoadingOutlined v-if="loading" />
          <UploadOutlined v-else />
          <div class="ant-upload-text">{{ text }}</div>
        </div>
        <a-button v-if="listType == 'picture'" :disabled="disabled">
          <UploadOutlined />
          {{ text }}
        </a-button>
      </div>
    </a-upload>

标签:vue,const,formData,element,token,key,七牛云,上传
From: https://www.cnblogs.com/DL-CODER/p/18289847

相关文章

  • 从 0 实现一个 vue3 的权限指令 v-permission
    在开发过程中会经常遇到一些权限控制,比如路由的权限控制、按钮的权限控制......
  • javab毕业设计-基于Java的校园二手交易商城系统设计与实现,基于springboot+vue二手跳蚤
    文章目录背景介绍演示视频(进入B站观看画面更清晰):项目架构和内容获取(文末获取)部分功能展示用户前端系统管理后台项目相关文件为什么我?本章节给大家带来的是一个基于java的大学生二手交易平台系统设计与实现,可适用于校园二手交易系统,基于Java的二手交易商城系统,大学......
  • vue中调用问题
    **背景我vue项目methods里面有三个方法,A方法,B方法,C方法,我在执行A方法里面调用B方法,B方法里面调用C方法,就报错了,说TypeError:Cannotreadpropertiesofundefined,这个nextHandleSubmit方法没有被定义,这是为什么?经过问gpt,结果竟然是:在上述代码中,箭头函数内部的this指向的是......
  • vue3管理系统常用代码总结
    管理系统常用基本模块,可满足大部分管理系统的基础模块需求。技术选型vue3+typescript1.登录功能//登录construleFormRef=ref<FormInstance>();constrouter=useRouter()//-->$routerconstsubmitForm=(formEl:FormInstance|undefi......
  • element-plus自定义弹框头背景色
    1.效果如下:弹框头部定制背景色;关闭按钮和标题对齐;鼠标悬浮关闭按钮颜色变浅。2.用到element-plus版本:  "element-plus":"2.7.6",3.具体思路:整个弹框的背景色改成蓝色,padding:0;header、body、footer背景色改成白色,字体黑色不变;padding给20px;关闭按钮高度......
  • 课程设计-基于Springboot+Vue的网上商城购物系统的设计与实现(源码+LW+包运行)
    源码获取地址:https://download.csdn.net/download/u011832806/89426605系统演示视频:链接:https://pan.baidu.com/s/1p9Xv9VrlNXSyNXRkdhccPg?pwd=xfdy一.系统概述网上商城购物系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方......
  • 新知识get,vue3是如何实现在style中使用响应式变量?
    前言vue2的时候想必大家有遇到需要在style模块中访问script模块中的响应式变量,为此我们不得不使用css变量去实现。现在vue3已经内置了这个功能啦,可以在style中使用v-bind指令绑定script模块中的响应式变量,这篇文章我们来讲讲vue是如何实现在style中使用script模块中的响应式变量......
  • 基于springboot + vue3 +遗传算法的智能组卷在线考试系统的设计与开发
    目录一、项目介绍1、项目简介 二、项目实现1、数据库设计E-R图2、数据库级联思路3、SpringSecurity的认证思路......
  • 基于SpringBoot+Vue+uniapp的随心淘网管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的劳务外包管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......