2010-08-10 17 views
7

Flask micro-framework 0.6 ve Python 2.6 kullanıyorum Python 2.6Flask/Python. Yüklü dosyadan mimetype alın

Yüklenmiş bir dosyadan mimetype almam gerekir, böylece saklayabilirim. İşte

Alakalı Python/Matara kodudur:

@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')) 


Ve burada web sayfasının kod şudur:

<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> 


kod çalışır, ancak ben gerekiyor yüklendiğinde mimetype almak için. Buradaki Flask belgelerine bir göz attım:
Bu yüzden mimetype aldığını biliyorum, ancak nasıl alınacağını anlayamıyorum - bir metin dizesi, ör. 'Txt/düz.

Herhangi bir fikrin var mı?

Teşekkür ederiz.

cevap

17

docs'dan, file.content_type kodlama ile tam tür içeriyor, sadece mim türü içeren mimetype içerir.

@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

Çok teşekkür ederim! Bir dahaki sefere Werkzeug belgelerini hatırlayacağım :) –

+2

@Jonathan: Rica ederim! Sağladığınız doküman sayfasından bağlandı. – MattH

+1

Bu biraz utanç verici: S lol –