How do I receive multipart form data in Azure function?(如何在 Azure 函数中接收多部分表单数据?)
本文介绍了如何在 Azure 函数中接收多部分表单数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在 Azure Function 中接收包含图像和文本的多部分数据.
我可以在 C# 和节点中看到很多示例
I want to receive multipart data containing images and texts in Azure Function.
I could see a lot of examples in C# and nodeNode link but Could not find anything in python.
Could not find anything in official docs as well Docs
解决方案
I have tried the below code and it works for me:
import logging
import json
import io
from PIL import Image
from azure.storage.blob import BlobServiceClient,BlobClient
import azure.functions as func
def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
name = req.form['name']
interests =json.dumps(req.form["interests"], indent=2)
imagefile = req.files["file"]
filename = imagefile.filename
filestream = imagefile.stream
filestream.seek(0)
blob = BlobClient.from_connection_string(conn_str= "<your connection string>", container_name="<container name>", blob_name="<blob name>")
blob.upload_blob(filestream.read(), blob_type="BlockBlob")
if name:
return func.HttpResponse(f"Hello, {name}. Created profile with your interests : {interests}. Uploaded your profile image file :{filename} to the blob. This function executed successfully.")
else:
return func.HttpResponse(
"This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
status_code=200
)
However, you can also use PIL in this case to get the bytes from the image . Then the code looks like :
import logging
import json
import io
from PIL import Image
from azure.storage.blob import BlobServiceClient,BlobClient
import azure.functions as func
def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
name = req.form['name']
interests =json.dumps(req.form["interests"], indent=2)
filename = req.files["file"].filename
image = Image.open(req.files["file"])
imgByteIO = io.BytesIO()
image.save(imgByteIO, format=image.format)
imgByteArr = imgByteIO.getvalue()
blob = BlobClient.from_connection_string(conn_str= "<your connection string>", container_name="<container name>", blob_name="<blob name>")
blob.upload_blob(imgByteArr)
if name:
return func.HttpResponse(f"Hello, {name}. Created profile with your interests : {interests}. Uploaded your profile image file :{filename} to the blob. This function executed successfully.")
else:
return func.HttpResponse(
"This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
status_code=200
)
Here is the postman request:
这篇关于如何在 Azure 函数中接收多部分表单数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:如何在 Azure 函数中接收多部分表单数据?
基础教程推荐
猜你喜欢
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
