当前位置: 首页 > news >正文

vue中使用ali-oss上传文件到阿里云上

1.使用 npm 安装ali-oss

npm install ali-oss --save

2.写ali-oss.js

// 引入ali-oss
let OSS = require('ali-oss')
let client = new OSS({region: 'oss-cn-xxx', // bucket所在的区域, 默认oss-cn-hangzhousecure: true, // secure: 配合region使用,如果指定了secure为true,则使用HTTPS访问accessKeyId: '', // 通过阿里云控制台创建的AccessKeyaccessKeySecret: '', // 通过阿里云控制台创建的AccessSecretbucket: 'xxxxx', // 通过控制台或PutBucket创建的bucket
})
export const put = async (ObjName, fileUrl) => {try {let result = await client.put(`${ObjName}`, fileUrl)// ObjName为文件名字,可以只写名字,就直接储存在 bucket 的根路径,如需放在文件夹下面直接在文件名前面加上文件夹名称return result} catch (e) {console.log(e)}
}

3.使用element ui的 upload 组件进行上传

<template><div><el-uploadclass="upload-demo"actiondrag:http-request="handleUploadOss":before-upload="beforeUploadOss"><i class="el-icon-upload"></i><div class="el-upload__text" v-loading="uploadLoading">将文件拖到此处,或<em>点击上传</em></div></el-upload></div>
</template>
<script>
import {put} from '@/utils/ali-oss'
export default {
data() {return {},methods: {beforeUploadOss(file) {// console.log(file)// 限制上传类型const fileExtensions = this.getFileName(file.name) === '.doc' || this.getFileName(file.name) === '.docx' || this.getFileName(file.name) ==='.pdf' || this.getFileName(file.name) ==='.xlsx' || this.getFileName(file.name) ==='.zip'//限制的上限为500Mbconst maxSize = file.size / 1024 / 1024 < 500;if (!fileExtensions) {this.$message.error('上传文件类型只能是 .doc, .docx, .pdf 格式, .xlsx 格式, .zip 格式!');}if (!maxSize) {this.$message.error('上传文件大小不能超过 500MB!');}// return fileExtensions && max20M;return maxSize},getFileName(name){return name.substring(name.lastIndexOf('.'))},handleUploadOss(option) {let objName = option.file.namelet fileName = moment().format('YYYY/MM/DD')this.uploadLoading = trueput(`${fileName}/${objName}`, option.file).then(res => {console.log(res)if (res.res.statusCode === 200) {this.$message.success('上传成功')}else{this.$message.error('上传失败')}}).catch((err) => {})},} 
}}
</script>
http://www.lryc.cn/news/186524.html

相关文章:

  • php实战案例记录(17)计算时间的函数及其示例说明
  • 基于Keil a51汇编 —— MPL 宏定义
  • Android 13 骁龙相机点击拍照流程分析(二)——点击拍照到存入相册
  • 常见算法-巴斯卡三角形(Pascal)
  • AI:09-基于深度学习的图像场景分类
  • uni-app:引入echarts(使用renderjs)
  • 使用wireshark解析ipsec esp包
  • linux如何删除最近操作的日志
  • android端MifareClassicTool
  • 设计模式 - 迭代器模式
  • Docker之Dockerfile搭建lnmp
  • 排序算法——选择排序
  • 【数据结构C/C++】双向链表的增删改查
  • Godot 添加Nuget 引用
  • IC工程师职场必备《经典Verilog100多个代码案例》(附下载)
  • springboot项目做成公共项目
  • RTC 时间、闹钟
  • 【yolo系列:yolov7训练添加spd-conv】
  • 面向对象设计-UML六种箭头含义
  • 一本没有任何数学公式的自然语言处理入门书
  • 【数据结构C/C++】多维数组的原理、访问方式以及作用
  • 2023年中国烹饪机器人市场发展概况分析:整体规模较小,市场仍处于培育期[图]
  • Android原生实现控件选择背景变色方案(API28及以上)
  • 为什么要学C语言及C语言存在的意义
  • 数据结构——空间复杂度
  • uniapp:swiper-demo效果
  • Graphviz 作图工具
  • vue、vuex状态管理、vuex的核心概念state状态
  • 【QT】Qt Application Manager启动应用源码分析
  • MyBatisPlus(十)判空查询