栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

iapp上传图片到云函数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

iapp上传图片到云函数

iapp上传图片到腾讯云函数 原理

原理:使用iapp对图片进行base64编码然后上传到腾讯云API网关触发云函数事件

iapp对图片进行base64处理

原理:使用httpbin.org对图片数据进行处理

iapp事件代码
t()
{
  s api = "http://httpbin.org/post"
  // 因为huf函数使用post请求所以要使用httpbin post链接
  s file = "/storage/emulated/0/Pictures/WeiXin/1.jpg"
  // 图片本地地址 如无法上传 使用%代替/storage/emulated/0/
  s type = "utf-8"
  // 编码
  huf(api, "" , file, type, e)
  syso(e)
}
返回结果
{
	"args": {},
	"data": "",
	"files": {
		"file": "data:image/jpeg;base64,图片数据"
	},
	"form": {},
	"headers": {
		"Accept-Encoding": "gzip",
		"Charset": "utf-8",
		"Content-Length": "121",
		"Content-Type": "multipart/form-data;boundary=******",
		"Host": "httpbin.org",
		"User-Agent": "",
		"X-Amzn-Trace-Id": "Root=1-6191e183-110116c866c95ea842fa6c2a"
	},
	"json": null,
	"origin": "IP地址",
	"url": "http://httpbin.org/post"
}
云函数接收数据 进入控制台新建云函数

选择python3.6

创建API网关触发

注意要不要勾选集成响应 否则下面的代码运行后会显示错误

云函数Python处理图片代码

这里的return没有使用集成响应的格式,如果勾选了集成响应会显示错误,集成响应的格式在官方文档的云函数API网关触发可以看到。

# -*- coding: utf8 -*-
import json
def main_handler(event, context):
    # 处理传入的数据
    try:
        body = event['body']
        data = json.loads(body)
        file = data['files']['file'] #文件
    except:
        return {
            "code":500,
            "msg":"文件为空"
        }

    # 判断是否图片base64数据
    try:
        img = re.sub(r'data:image/(jpeg|png|gif);base64,','',file)#去除文件类型
    except:
        return {
            "code":501,
            "msg":"这不是一张图片"
        }
    
    # 写入到图片
    try:
        imgdata = base64.b64decode(img)
        file_path  = '/tmp/test.jpg'
        fo = open(file_path,'wb')
        fo.write(imgdata)
        fo.close()
        # 图片保存成功 云函数可以操作/tmp目录
        # 这里执行你的逻辑
    except:
        return {
            "code":502,
            "msg":"服务器保存图片错误"
        }
获取API网关访问路径

iapp上传httpbin的回调数据到云函数
t()
{
  s api = "http://httpbin.org/post"
  s tapi ="https://iapi.1ove.icu/release/i-up-up"
  //api网关的地址(这是我的写的图床接口,大家可以使用)
  s file = "/storage/emulated/0/Pictures/WeiXin/1.jpg"
  //上传的文件
  s type = "utf-8"
  //上传到httpbin 传入 参数e
  huf(api, "" , file, type, e)
  //上传 参数e 到云函数
  hs(tapi,e,type,ee)
  //ee 结果
}
  

源码

链接: https://pan.baidu.com/s/1lm_uN8tSPFOjq1eTHJGb_Q 提取码: mjve

如文件失效可联系邮箱admin@1ove.icu或加入QQ群

Blog:i.1ove.icu
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530058.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号