2012-10-22 88 views
9

我試圖使用requests上傳文件。我需要上傳PDF文件,同時將其他數據發送到作者姓名等表單。使用請求上傳文件併發送額外數據

我嘗試這樣做:

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

但不發送數據到窗體。

+3

一個例子[文件](中給出http://requests.readthedocs.org/en/latest/user/quickstart/#post-a-multipart-encoded-file )。你有問題嗎? –

+0

@BurhanKhalid請再次看看這個問題 –

回答

14

所以我明白你想上傳到一個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) 
+0

我被要求這樣做'對http:// server-url/oauth /進行多部分發布請求。與以下表單域。作者,PDF文件' –

+1

我應該在'data'參數字典中添加文件嗎? –

+0

不,將其添加到'files'參數中,'data'參數用於表單數據。 –

相關問題