2010-08-10 7 views
7

Я использую флешку micro-framework 0.6 и Python 2.6Фляга/Python. Получите mimetype из загруженного файла

Мне нужно получить mimetype из загруженного файла, чтобы я мог его сохранить.

Вот Релевент Python/Колба код:

@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 при его загрузке. Я посмотрел на документы Flask здесь: http://flask.pocoo.org/docs/api/#incoming-request-data
Так что я знаю, что он получает тип mimetype, но я не могу понять, как его получить - как текстовую строку, например. 'TXT/равнину.

Любые идеи?

спасибо.

ответ

17

От docs, file.content_type содержит полный тип с кодировкой, mimetype содержит только тип mime.

@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

@ Джонатан: Добро пожаловать! Он был связан с предоставленной вами страницей doc. – MattH

+1

Ну, это немного неловко: S lol –

Смежные вопросы