【问题标题】:How to convert an InMemoryUploadedFile in django to a fomat for flickr API?如何将 django 中的 InMemoryUploadedFile 转换为 flickr API 的格式?
【发布时间】:2016-04-05 04:18:34
【问题描述】:

我有一个将文件上传到 Flickr 的课程。该文件的类型为
'InMemoryUploadedFile'。

我想知道如何将“InMemoryUploadedFile”文件中的数据转换或传递为 flickr API 的格式?

例如:

{'photo': ('image.jpg', <InMemoryUploadedFile: image.jpg (image/jpeg)>)}

上传接口:https://www.flickr.com/services/api/upload.api.html

错误代码

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
    <err code="4" msg="Filesize was zero" />
</rsp>

【问题讨论】:

    标签: python django flickr


    【解决方案1】:

    InMemoryUploadedFile 是一个围绕文件对象的wrapper。您可以使用file 属性访问文件对象。因此,在您的示例中,尝试将其传递给 Flickr API:

    {'photo': my_in_memory_file.file}
    

    如果这不起作用,请编辑您的问题,详细说明您用于提交请求的代码。

    【讨论】:

    • 谢谢。但它返回: {'photo': ('image.jpg', <_io.bytesio object at>)}
    • 你能用你正在使用的代码更新你的问题吗?输出 {'photo': ('image.jpg', &lt;_io.BytesIO object at 0x10dbefa70&gt;)} 的代码和您用于将照片发布到 API 的代码。
    【解决方案2】:

    InMemoryUploadedFile onbject 中的数据已通过以下方式成功提取并传递给 Flickr:

    import StringIO
    file.seek(0)
    file_handle = StringIO.StringIO(file.read())
    {'photo': ('image.jpg', file_handle)}
    

    谢谢

    【讨论】:

    猜你喜欢
    • 2010-10-05
    • 2018-05-07
    • 2018-11-04
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2023-03-25
    • 2022-10-06
    • 2019-05-14
    相关资源
    最近更新 更多