2010-08-10 6 views
7

Flask 마이크로 프레임 워크 0.6 및 Python 2.6을 사용하고 있습니다.플라스크/파이썬. 업로드 된 파일에서 mimetype 가져 오기

업로드 할 수 있도록 파일에서 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을 가져옵니다. 여기 Flask 문서를 살펴 봤습니다 : http://flask.pocoo.org/docs/api/#incoming-request-data
그래서 mimetype을 얻었는지는 알지만 그것을 검색하는 방법을 찾지 못했습니다. 'txt/plain'.

아이디어가 있으십니까?

감사합니다.

답변

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

@Jonathan : 천만에요! 그것은 당신이 제공 한 문서 페이지에서 링크되었습니다. – MattH

+1

음, 약간 당황 스럽네요. –

관련 문제