2010-08-10 13 views
7

मैं फ्लास्क माइक्रो-फ्रेमवर्क 0.6 और पायथन 2.6फ्लास्क/पायथन। अपलोड की गई फ़ाइल से mimetype प्राप्त करें

का उपयोग कर रहा हूं मुझे अपलोड की गई फ़ाइल से मिमटाइप प्राप्त करने की आवश्यकता है ताकि मैं इसे स्टोर कर सकूं। यहाँ

@app.route('/upload_file', methods=['GET', 'POST']) 
def upload_file(): 
    if request.method == 'POST': 
     file = request.files['file'] 
     mimetype = #FIXME 
     if file: 
      file.save(os.path.join(UPLOAD_FOLDER, 'File-Name') 
      return redirect(url_for('uploaded_file')) 
     else: 
      return redirect(url_for('upload')) 


और वेबपेज के लिए कोड है::

यहाँ प्रासंगिक अजगर/बोतल कोड है

<form action="upload_file" method=post enctype=multipart/form-data> 
Select file to upload: <input type=file name=file> 
<input type=submit value=Upload> 
</form> 


कोड काम करता है, लेकिन मैं सक्षम होना चाहिए जब यह अपलोड करता है तो mimetype प्राप्त करने के लिए। मैंने यहां फ्लास्क डॉक्स पर एक नज़र डाली है: http://flask.pocoo.org/docs/api/#incoming-request-data
तो मुझे पता है कि यह माइमटाइप प्राप्त करता है, लेकिन मैं इसे पुनर्प्राप्त करने के तरीके से बाहर नहीं कर सकता - टेक्स्ट स्ट्रिंग के रूप में, उदा। 'Txt/सादे'।

कोई विचार?

धन्यवाद।

उत्तर

17

docs से, file.content_type में एन्कोडिंग के साथ पूर्ण प्रकार है, mimetype में केवल माइम प्रकार है।

@app.route('/upload_file', methods=['GET', 'POST']) 
def upload_file(): 
    if request.method == 'POST': 
     file = request.files.get('file') 
     if file: 
      mimetype = file.content_type 
      filename = werkzeug.secure_filename(file.filename) 
      file.save(os.path.join(UPLOAD_FOLDER, filename) 
      return redirect(url_for('uploaded_file')) 
     else: 
      return redirect(url_for('upload')) 
+0

आपको बहुत बहुत धन्यवाद! मुझे अगली बार Werkzeug दस्तावेज़ों के बारे में याद होगा :) –

+2

@ जोनाथन: आपका स्वागत है! यह आपके द्वारा प्रदान किए गए दस्तावेज़ पृष्ठ से जुड़ा हुआ था। – MattH

+1

वैसे यह थोड़ा शर्मनाक है: एस लॉल –

संबंधित मुद्दे