【问题标题】:Upload an image to twitter via tweepy from django form通过 tweepy 从 django 表单将图像上传到 Twitter
【发布时间】:2017-04-11 03:29:03
【问题描述】:

我想上传一张由 django 表单拍摄的图片到 twitter:

<div class="panel panel-danger">
                <div class="panel-heading">
                    <h3 class="panel-title">Panel title</h3>
                </div>
                <div class="panel-body">
                    <form action="" method="POST" role="form" enctype="multipart/form-data">
                        {% csrf_token %}
                        <legend>Upload a file: </legend>

                        <div class="form-group">
                            <input type="file" name="file" class="form-control" id="">
                        </div>



                        <button type="submit" class="btn btn-primary">Submit</button>
                    </form>
                </div>
            </div>

我得到的图片是:

if fileForm.is_valid():
            print "file is uploaded."
            paramFile = open(request.FILES['file'],'rb')
            # paramFile = request.FILES['file'].read()
            api.update_with_media(paramFile,status="Hello first image")

我得到的错误是:

强制转换为 Unicode:需要字符串或缓冲区,找到 InMemoryUploadedFile

如何将其上传到 Twitter?

【问题讨论】:

    标签: python django twitter tweepy


    【解决方案1】:

    方法 update_with_media() 只有一个位置参数,它采用文件名。 所以你可以像这样指定文件名:

    api.update_with_media(request.FILES['file'].name,
                          status="Hello first image")
    

    您还应该使用关键字参数“文件”传递文件:

    api.update_with_media(request.FILES['file'].name,
                          file=request.FILES['file'], 
                          status="Hello first image")
    

    【讨论】:

      【解决方案2】:

      根据docs,您必须同时传递将在内部打开的file 参数和确定MIME 类型所需的filename 参数,并将用作post 数据中的表单字段。因此,只需将它们作为关键字参数显式传递就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-27
        • 2014-07-03
        • 2022-01-25
        • 1970-01-01
        • 2015-11-07
        • 2016-09-09
        • 1970-01-01
        • 2014-10-01
        相关资源
        最近更新 更多