使用请求上传文件并发送额外数据
Posted
技术标签:
【中文标题】使用请求上传文件并发送额外数据【英文标题】:Uploading files using requests and send extra data 【发布时间】:2012-10-12 11:35:54 【问题描述】:我正在尝试使用requests 上传文件。我需要上传一个 PDF 文件,同时将一些其他数据发送到表单中,比如作者的姓名。
我试过了:
requests.get(url, files = "file":open("file.txt"), "author" : "me" )
但它不会向表单发送数据。
【问题讨论】:
the documentation 中给出了一个示例。你有问题吗? @BurhanKhalid 请再看问题 【参考方案1】:所以我知道您想上传到一个 URL、一个 pdf 文件以及一些额外的参数。
您遇到的第一个错误是您使用的是.get()
而不是.post()
。
我正在使用来自documentation 的示例,您应该通过这些示例。这应该可以帮助您开始:
>>> url = 'http://httpbin.org/post'
>>> files = 'file': open('somefile.pdf', 'rb')
>>> values = 'author': 'John Smith'
>>> r = requests.post(url, files=files, data=values)
【讨论】:
我被要求这样做Make a multipart post request to http://server-url/oauth/. with the following form fields. AUTHOR, PDF FILE
我应该在data
参数dict.中添加文件吗?/?
不,添加到files
参数,data
参数用于表单数据。
@BurhanKhalid - 您能否建议如何在端点中检索此数据。我正在使用烧瓶并使用request.data
获取文件内容。我怎样才能得到额外的数据(值)?
在flask端点中使用request.form
来检索数据。以上是关于使用请求上传文件并发送额外数据的主要内容,如果未能解决你的问题,请参考以下文章
在每个文件上传时使用 dropzone.js 发送自定义数据