首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图通过api上传文件

试图通过api上传文件
EN

Stack Overflow用户
提问于 2021-05-04 13:54:25
回答 1查看 380关注 0票数 1

我想通过API从Python + Django应用程序中以编程方式将pdf文件上传到应用程序。

他们的文件上说:

“为了上传发票,您必须以from.data的形式发布一篇文章,输入键类型为”file“,值为fiscal_document,该值指的是所附加的文件。”

代码语言:javascript
运行
复制
curl -X POST  https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents 
-H 'Content-Type: multipart/form-data' \
-H 'Authorization: Bearer $ACCESS_TOKEN' \
-F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'

我正试图通过以下请求来实现这一目标:

代码语言:javascript
运行
复制
response = requests.request("POST", url, headers=headers, files={'fiscal_document': my_file_url}).json()

但是我得到了以下的回应

代码语言:javascript
运行
复制
{
    "message": "File cannot be empty",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

我的请求电话可以吗?

在这个示例中,声明了一个本地路径,但我需要从URL中获取文件。我应该把“@”放在-F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'里吗?

我应该上传一个字节类型吗?

线索很受欢迎。提前谢谢。

更新1

根据这些建议,我尝试了以下几点:

代码语言:javascript
运行
复制
with open(esta_operacion.factura_pdf.url, 'r') as myFile:
    response = requests.request("POST", url, headers=headers, files={'fiscal_document': myFile}).json()
    myFile.close()

但我得到了[Errno 2] No such file or directory.......

该文件存在,我可以下载它。

EN

回答 1

Stack Overflow用户

发布于 2021-05-04 14:16:46

我无法重现这个问题,但是您发送的是URL字符串,而不是它的内容。您应该先读取URL,然后上传内容。

以下代码将提供以下内容:

代码语言:javascript
运行
复制
from urllib.request import urlopen

with urlopen(my_file_url) as f:
    my_file = f.read()
    response = requests.request("POST", url, headers=headers, files={'fiscal_document': my_file})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67386219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档