2012-03-02 16 views
6

में काम नहीं कर रहे फ़ाइल को अपलोड करने का अनुरोध करें, मैं फ्लास्क का उपयोग कर वेब एप्लिकेशन पर काम कर रहा हूं। विचारों में से एक को PUT अनुरोधों के माध्यम से अपलोड की गई फ़ाइलों को स्वीकार करना है, हालांकि मुझे ठीक से काम करने के लिए केवल $ curl -F [email protected] URL के साथ POST अनुरोध प्राप्त हो सकते हैं। PUT अनुरोधों के साथ $ curl --upload-file filenname URLrequest.files ImmutableMultiDict खाली है। क्या मैं फ्लास्क में कुछ खो सकता हूं या शायद कर्ल का उपयोग कर रहा हूं?फ्लास्क

उत्तर

6

POUT अनुरोध POST अनुरोध की तुलना में अलग है। PUT अनुरोध के साथ फ़ाइल सामग्री को request.data या request.stream का उपयोग करके एक्सेस किया जा सकता है। पहले एक स्टोर, स्ट्रिंग के रूप में डेटा आने वाली है, जबकि request.stream अधिक एक फ़ाइल वस्तु की तरह कार्य करता है, बाइनरी डेटा के लिए यह अधिक उपयुक्त बनाने:

with open('uploaded_image.jpg', 'w') as f: 
    f.write(request.stream.read()) 
+0

हाँ मेरी फाइल request.data में समाप्त हो गया क्योंकि बोतल अपने माइम प्रकार संभाल नहीं कर सकते। – Adrian