django - python关于存储文件的问题

 小辛牛牛123牛牛小辛321 发布于 2022-10-29 01:58

我想用django存储微信服务器发送过来的文件,与微信的交互使用的了'wechat-python-SDK',其中用一个方法是.download_media(media_id)用于获取微信服务器上的媒体文件。
这个方法的介绍如下:
返回值:当请求成功时,返回一个 requests.Response 对象,下面示例将该对象存储为本地文件:

response = wechat.download_media('your media id')
with open('yourfilename', 'wb') as fd:
    for chunk in response.iter_content(1024):
        fd.write(chunk)

异常:当发生失败时抛出 exceptions.OfficialAPIError 异常,该异常包含了错误的代号与原因信息。

我写的代码如下:

if type == 'voice':#语音数据
            media_id = WC.message.media_id  # 对应于 XML 中的 MediaId
            format = WC.message.format  # 对应于 XML 中的 Format
            media_name = media_id +'.'+ format
            recognition = WC.message.recognition  # 对应于 XML 中的 Recognition
            try:
                response = WC.download_media(media_id=media_id)
                media = File(response.raw)
                media_file = FileSystemStorage().save(name=media_name,content=media)
                msg = Record(
                    CreateTime=datetime.utcfromtimestamp(int(time)),
                    Media = media_file,
                    Recognition=recognition,
                    Type=type,
                    FromUser=user,
                    Corrected=False,
                )
                msg.save()
            except Exception as e:
                ResponseXml = WC.response_text(content="存储语音信息出错!" + str(e))
                return HttpResponse(ResponseXml)
            ResponseXml = WC.response_text(content="保存成功!")

现在有一个问题:
现在的代码运行可以成功的创建一个文件,但文件的大小是0,也就是并没有成功的将数据保存下来,只是创建了文件,不知道应该如何定位问题?

1 个回答
  • media_file打印出来看看,它应该是所保存文件的文件名

    2022-10-30 06:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有