web-dev-qa-db-ja.com

リクエストを使用してファイルをアップロードし、追加のデータを送信する

requests を使用してファイルをアップロードしようとしています。 PDFファイルをアップロードすると同時に、作成者の名前などの他のデータをフォームに送信する必要があります。

私はこれを試しました:

requests.get(url, files = {"file":open("file.txt"), "author" : "me" })

ただし、フォームにデータを送信することはありません。

11
Dennis Ritchie

だから私はあなたがいくつかの追加のパラメータと一緒に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)
17
Burhan Khalid