尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
vue文件上传至阿里云 ali-oss
在之前的开发当中都是后台处理上传前端负责上传接口调用涉及到直传到阿里云对象存储服务oss查阅了相关资料借鉴相关的文章然后做了一些调整分享出来希望能帮助到遇到这个需求的小伙伴下面是具体的步骤。使用oss1.使用 NPM 安装ali-ossnpm install ali-oss2.写一个公用的ali-oss.js// 引入ali-oss let OSS require(ali-oss) /** * [accessKeyId] {String}通过阿里云控制台创建的AccessKey。 * [accessKeySecret] {String}通过阿里云控制台创建的AccessSecret。 * [bucket] {String}通过控制台或PutBucket创建的bucket。 * [region] {String}bucket所在的区域 默认oss-cn-hangzhou。 */ let client new OSS({ region: oss region, secure: true, // secure: 配合region使用如果指定了secure为true则使用HTTPS访问 accessKeyId: Your accessKeyId, accessKeySecret: Your accessKeySecret, bucket: Your bucket name })官网方法示例点这里3.调用/** * 上传文件大小不能超过5GB * param {string} ObjName OSS的储存路径和文件名字 * param {string} fileUrl 本地文件 * retruns Promise */ export const put async (ObjName, fileUrl) { try { let result await client.put(${ObjName}, fileUrl) // ObjName为文件名字,可以只写名字就直接储存在 bucket 的根路径如需放在文件夹下面直接在文件名前面加上文件夹名称 return result } catch (e) { console.log(e) } } // 上传成功之后转换真实的地址 export const signatureUrl async (ObjName) { try { let result await client.signatureUrl(${ObjName}) return result } catch (e) { console.log(e) } }4.保证上传文件的唯一性随机生成文件名/** * 生成随机文件名称 * 规则八位随机字符加下划线连接时间戳 */ export const getFileNameUUID () { function rx() { return (((1 Math.random()) * 0x10000) | 0).toString(16).substring(1) } return ${new Date()}_${rx()}${rx()} }使用element的 upload 组件进行上传使用Element-UI的 Upload 组件的自定义方法http-request上传覆盖默认的。直接贴代码template div classhello el-upload classupload-demo action :http-requesthandleUpload :before-uploadbeforeUpload el-button sizesmall typeprimary点击上传/el-button /el-upload /div /template script import { put, signatureUrl, getFileNameUUID } from /utils/ali-oss export default { name: Upload, }, methods: { beforeUpload(file) { // 限制上传类型 const fileExtensions getFileName(file.name) .doc || getFileName(file.name) .docx || getFileName(file.name) .pdf //限制的上限为20M const max20M file.size / 1024 / 1024 20; if (!fileExtensions) { this.$message.error(上传文件类型只能是 .doc, .docx, .pdf 格式!); } if (!max20M) { this.$message.error(上传文件大小不能超过 20MB!); } return fileExtensions max20M; }, /** * 自定义上传方法 */ handleUpload(option) { // 获取文件的后缀名 let objName getFileNameUUID() var obj option.file.name var index obj.lastIndexOf(.); obj obj.substring(index,obj.length); // 生成的文件名保留文件后缀名进行拼接 let objName getFileNameUUID() getFileName(option.file.name) // 调用 ali-oss 中的方法,flieName是存放的文件夹名称可自己定义 put(flieName/${objName}, option.file).then(res { console.log(res) // 上传成功之后转换真实的地址 signatureUrl(flieName/${objName}).then(res { console.log(res) }) }) } } } /script最后提交到后台保存文件地址上传到阿里云OSS成功后会返回文件的地址提交给后台保存地址就可以了。如果遇到跨域问题请参考官网的配置oss跨域配置
RELATED

相关推荐

基于微信小程序的投票系统设计(源码+文档+部署讲解等)

基于微信小程序的投票系统设计(源码+文档+部署讲解等)

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

📅 2026/9/20 14:06:49
基于微信小程序的停车位租赁平台的设计与实现(源码+文档+部署讲解等)

基于微信小程序的停车位租赁平台的设计与实现(源码+文档+部署讲解等)

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

📅 2026/9/28 4:17:57
秋叶ComfyUI整合包:一键部署本地AI视频生成,支持LTX-2.3模型

秋叶ComfyUI整合包:一键部署本地AI视频生成,支持LTX-2.3模型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/25 7:06:45
MORE NEWS

更多资讯

📰

Oracle迁移KingbaseES实战指南与优化策略

1. Oracle迁移KingbaseES项目概述作为国产数据库领域的标杆产品,KingbaseES凭借其出色的Oracle兼容特性,已经成为企业级数据库国产化替代的首选方案之一。在实际项目中,我们经常需要将运行多年的Oracle系统迁移至KingbaseES平台。这种迁移不仅…

📰

iOS 自定义通知 UI:UNNotificationContentExtension 从配置到排错落地

做内容类、工具类应用的同学大概都遇到过这种尴尬:一条推送本该是“封面图 标题 两个快捷按钮”的组合,结果在通知中心里只能显示成一行标题加一行正文,剩下的信息全被折叠掉了。iOS 10 引入的 UserNotifications 框架里,有一块…

📰

基于Spring Boot的校园食堂订餐系统设计与实现:从毕业设计到二次开发

简介:这份资源是面向计算机专业学生与Java Web开发学习者的毕业设计完整文档,聚焦疫情背景下校园食堂就餐拥挤、外卖不健康、点餐不便等现实痛点,给出了一套可落地的订餐系统设计方案。文档围绕Spring Boot轻量框架与B/S架构展开,…

📰

计算机处理器笔记指南:流水线、缓存与性能实测

1. 先搞清楚"计算机处理器笔记"到底该记什么"计算机处理器笔记"这个文件夹名,我在自己的目录里见过太多次。第一次建它的时候,里面塞满了从各处抄来的名词:流水线、超标量、乱序执行、缓存一致性、分支预测、超线程……每…

📰

电力系统潮流计算与开断分析:牛顿-拉夫逊法实践

1. 电力系统潮流计算基础与开断潮流概述电力系统潮流计算是分析电网运行状态的核心工具,它通过求解节点功率平衡方程来确定系统中各节点的电压幅值、相角以及支路功率分布。牛顿-拉夫逊法因其二次收敛特性成为最常用的潮流计算方法,而开断潮流分析则是在…

📰

MySQL外键约束报错分析与最佳实践

1. 外键约束报错问题深度解析今天在重构一个学生成绩管理系统时,遇到了一个让我抓狂的外键约束报错。错误提示明确告诉我"Missing unique key for constraint score_ibfk_9 in the referenced table student",但奇怪的是我明明已经移除了所有相…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬