2010-08-10 77 views
7

我使用Flask 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文檔:) – 2010-08-10 10:56:19

+2

@Jonathan:不客氣!它與您提供的文檔頁面鏈接。 – MattH 2010-08-10 11:08:02

+1

那有點尷尬:S哈哈 – 2010-08-10 11:37:08