2010-08-10 29 views
7

Tôi đang sử dụng Flask micro-framework 0.6 và Python 2.6Bình/Python. Nhận mimetype từ tập tin được tải lên

Tôi cần lấy mimetype từ một tệp đã tải lên để tôi có thể lưu trữ nó.

Đây là có liên quan mã Python/Flask:

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


Và đây là mã cho các trang web:

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


Mã này hoạt động, nhưng tôi cần để có thể để có được mimetype khi nó tải lên. Tôi đã xem tài liệu Flask tại đây: http://flask.pocoo.org/docs/api/#incoming-request-data
Vì vậy, tôi biết nó có được mimetype, nhưng tôi không thể tìm ra cách truy xuất tài liệu - dưới dạng chuỗi văn bản, ví dụ: 'txt/plain'.

Bất kỳ ý tưởng nào?

Cảm ơn bạn.

Trả lời

17

Từ docs, file.content_type chứa loại đầy đủ có mã hóa, mimetype chỉ chứa loại 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

Cảm ơn bạn rất nhiều! Tôi sẽ nhớ về các tài liệu Werkzeug lần sau :) –

+2

@ Jonathan: Bạn được chào đón! Nó được liên kết từ trang doc bạn cung cấp. – MattH

+1

Điều đó hơi xấu hổ: S lol –

Các vấn đề liên quan