如何在 json 中包含图像文件? [复制]

Posted

技术标签:

【中文标题】如何在 json 中包含图像文件? [复制]【英文标题】:How do i include an image file in json? [duplicate] 【发布时间】:2019-08-31 03:17:55 【问题描述】:

我目前正在尝试向我的烧瓶 restful 服务发送一个 POST 请求,该服务将生成一个模型以保存到数据库中。 此模型将包含一个指向通过 cloudinary 托管的图像的 URL 以及日期和名称等其他数据

我的问题是,在 Postman 中,我只能发送 form-dataraw,其中将包含 json。我能够上传到 cloudinary 并接收所需的 url,但是我无法从请求中获取 json,因此我无法完全生成要保存的模型。

image_json = request.get_json() 返回None

我的问题是我是否只能发送一个或raw or form-data 我应该如何获取图像和保存模型所需的相应数据?

from cloudinary.uploader import upload
from cloudinary.utils import cloudinary_url
from flask_restful import Resource
from flask import request
from models.image import ImageModel
from schemas.image import ImageSchema

image_schema = ImageSchema()
image_list_schema = ImageSchema(many=True)


class Image(Resource):
    @classmethod
    def post(cls):
        image_to_upload = request.files["image"]
        if image_to_upload:
            upload_result = upload(image_to_upload)
            url = cloudinary_url(upload_result['public_id'], format="jpg", crop="fill", width=100,height=100)[0]

            full_size_url = cloudinary_url(upload_result['public_id'], format="jpg", crop="fill", width=200, height=100, radius=20, effect="sepia")[0]

            image_json = request.get_json() # this returns None
            image_json["url"] = url
            image_json["full_size_url"] = full_size_url
            image = image_schema.load(image_json)

            try:
                image.save_to_db()
            except:
                return "message": "error uploading file"
            return image_schema.dump(image), 201
        return "message": "no image uploaded", 401

【问题讨论】:

【参考方案1】:

当您使用 multipart/form-data 将文件发送到烧瓶时,该文件将位于 request.files 中,因此,在您的情况下,它将是

image_json = request.files['here is the key you add to the file on postman']

其他的东西,称为表单数据,将在 request.form 中。所以,要做到这一点:

form_data = request.form

因此,使用 postman,当您选择 multipartm/form-data 时,您将首先为文件命名,然后您将选择它。如上所述,名称(或密钥)将是 dict 中用于获取文件的密钥。 此外,对于表单部分,密钥的工作方式相同

【讨论】:

以上是关于如何在 json 中包含图像文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将图标图像保存到c#中的某个位置? [复制]

如何在项目中包含图像过滤器插件

导出为 PDF 时如何在文本字段中包含图像和表格?

在 R Markdown 文件中包含 HTML 文件?

如何在 Tkinter 中的一个按钮中包含图像+文本

Vue CLI - 在静态文件中包含资产文件夹中的图像