如何利用unicloud阿里云云函数实现文件包括图片或文件上传,unicloud云函数写法一览

这里以一个单文件上传为例子,多图多文件同理,循环单图处理逻辑即可。

背景

前端vue上传图片文件(base64格式)到服务器,并获取返回的服务器资源存储路径

传入参数

{

"queryStringParameters":{

"file":"单图文件临时src的base64编码内容"

}

}

**注意:**请求体问题!

在云函数中,请求体(body)有时会出现在`queryStringParameters`中,而不是在`body`中,可能是因为请求的 Content-Type 类型不被云函数所支持,或者在请求的时候没有正确地设置请求头。

在云函数中,一般情况下,如果请求是一个 HTTP POST 请求且 Content-Type 是 application/json,那么请求体应该出现在`body`中。但如果请求的 Content-Type 不是 application/json,云函数可能会将请求体解析为字符串并放在`queryStringParameters`中,而不是解析为 JSON 对象并放在`body`中。

完整js代码

javascript 复制代码
'use strict';
exports.main = async (event, context) => {
	   console.log(event)
	   const db = uniCloud.database();
	    try {
	               const file = event.queryStringParameters.file; // 从前端传来的图片文件对象
	
	           // 上传图片到云存储
	           const res = await uniCloud.uploadFile({
	               cloudPath: `images/${Date.now()}_${Math.floor(Math.random() * 10000)}.png`, // 上传到云存储的路径,可以自定义
	               fileContent: Buffer.from(file.split(',')[1], 'base64') // 将 base64 格式的图片内容转换为 Buffer 对象
	           });
			   
	           // 将图片地址返回给前端
	           return {
				    event:event,
	               fileUrl: res.fileID // 返回上传成功后的文件地址
	           };
	       } catch (error) {
	           return {
				   event:event,
	               code: 500,
	               message: '上传失败:' + error.message
	           };
	       }
};

**注意:**uniCloud.uploadFile

uniCloud.uploadFile 是 uniCloud 提供的用于将文件上传到云存储的一个方法。uniCloud 是 DCloud 提供的云开发平台,主要面向前端开发者。通过 uniCloud,开发者可以在云端处理数据库、文件存储等操作,而不需要自己搭建和维护服务器。

如果这篇文章对您有所帮助的话,点个小赞赞吧🌹🌹

相关推荐
无人机90111 分钟前
Delphi 网络编程实战:TIdTCPClient 与 TIdTCPServer 类深度解析
java·开发语言·前端
lUie INGA1 小时前
rust web框架actix和axum比较
前端·人工智能·rust
OPHKVPS2 小时前
VoidStealer新型窃密攻击:首例利用硬件断点绕过Chrome ABE防护,精准窃取v20_master_key
前端·chrome
月光宝盒造梦师2 小时前
Ant Design Ellipsis 中的判断逻辑 isEleEllipsis 方法非常消耗性能
javascript·react·优化
馨谙2 小时前
OpenEBS + PV/PVC 解析:命令、文件、作用、后续用法
云原生·容器·kubernetes
gechunlian882 小时前
SpringBoot3+Springdoc:v3api-docs可以访问,html无法访问的解决方法
前端·html
驾驭人生2 小时前
ASP.NET Core 实现 SSE 服务器推送|生产级实战教程(含跨域 / Nginx / 前端完整代码)
服务器·前端·nginx
酉鬼女又兒3 小时前
零基础快速入门前端ES6 核心特性详解:Set 数据结构与对象增强写法(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯·es6
慧一居士3 小时前
Vue项目中,子组件调用父组件方法示例,以及如何传值示例,对比使用插槽和不使用插槽区别
前端·vue.js
@atweiwei3 小时前
深入解析gRPC服务发现机制
微服务·云原生·rpc·go·服务发现·consul