2012-10-22 7 views
9

मैं requests का उपयोग कर एक फ़ाइल अपलोड करने का प्रयास कर रहा हूं। मुझे एक पीडीएफ फ़ाइल अपलोड करने की आवश्यकता है और साथ ही लेखक के नाम की तरह फॉर्म में कुछ अन्य डेटा भेजना होगा।अनुरोधों का उपयोग कर फाइल अपलोड करना और अतिरिक्त डेटा

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

@ बुरहान खालिद कृपया फिर से प्रश्न देखें –

उत्तर

14

तो मैं समझता हूं कि आप कुछ अतिरिक्त पैरामीटर के साथ एक यूआरएल, एक पीडीएफ फ़ाइल अपलोड करना चाहते हैं।

आपके पास पहली त्रुटि है कि आप .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/पर एक मल्टीपार्ट पोस्ट अनुरोध करें। निम्नलिखित फार्म फ़ील्ड के साथ। लेखक, पीडीएफ फ़ाइल ' –

+1

क्या मुझे फ़ाइल को' डेटा' पैरामीटर dict.?/ में जोड़ना चाहिए? –

+0

नहीं, इसे 'फाइल' पैरामीटर में जोड़ें,' डेटा' पैरामीटर फॉर्म डेटा के लिए है। –