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

如何利用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代码

'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,开发者可以在云端处理数据库、文件存储等操作,而不需要自己搭建和维护服务器。

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

http://www.lryc.cn/news/359880.html

相关文章:

  • Django序列化器中is_valid和validate
  • 关于Golang中自定义包的简单使用-Go Mod
  • Dijkstra求最短路篇二(全网最详细讲解两种方法,适合小白)(python,其他语言也适用)
  • Dijkstra求最短路篇一(全网最详细讲解两种方法,适合小白)(python,其他语言也适用)
  • 计算机组成原理06:浮点数运算
  • opencascade 快速显示AIS_ConnectedInteractive源码学习
  • CentOS系统上安装单机版Redis教程
  • 纯Java实现Google地图的KMZ和KML文件的解析
  • k8s自定义资源你会创建吗
  • CATIA二次开发VBA入门(4)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲面的宏录制到二次开发案例
  • c++字符串相关接口
  • Maven打包错误:无效的源发行版:17
  • 【环境栏Composer】Composer常见问题(持续更新)
  • 塑造更智慧的AI:策略与路径探索
  • 软设之快速排序
  • 从零学算法2965
  • 【Mac版】Java生成二维码
  • ROS2自定义服务接口
  • linux /www/server/cron内log文件占用空间过大,/www/server/cron是什么内容,/www/server/cron是否可以删除
  • C++青少年简明教程:break语句、continue语句
  • MySQL实战行转列(或称为PIVOT)实战sales的表记录了不同产品在不同月份的销售情况,进行输出
  • 牛客NC164 最长上升子序列(二)【困难 贪心+二分 Java/Go/PHP/C++】
  • 电子烟开发【恒压、恒有效算法】
  • 基于Open3D的点云处理22-非阻塞可视化/动态可视化
  • C++面试题其一
  • CentOS7某天的samba服务搭建操作记录(还没成功)
  • Qt Demo:基于TCP协议的视频传输Demo
  • 内存管理【C++】
  • D3D 顶点格式学习
  • gmssl vs2010编译