五十-6:フラスコのファイルアップロードファイルアップロードとアクセスファイルをアップロード

 

ファイルアップロード

図1に示すように、フォームのフォーム、ENCTYPE =「マルチパート/フォームデータを指定 」、 およびファイルアップロード=入力タグ型「ファイル」
2を、ファイルアップロードrequest.files.get背景(「ファイルアップロード入力タグを取得します名前属性値「)
3、ファイルを保存する前に、最初の使用は、セキュリティ上の問題を避けるために、フィルタのファイル名にwerkzeug.utils.secure_filename
アップロードされたファイルを取得した後、4は、ファイルを保存するファイルオブジェクト.SAVE(パス)を使用します

<!DOCTYPE HTML> 
<HTML LANG = "EN">
<HEAD>
<メタ文字コード= "UTF-8">
<タイトル>上传文件</ TITLE>
</ HEAD>
<BODY>
<フォームアクション= ""方法= "POST"のenctype = "マルチパート/フォームデータ">
<TABLE>
<TBODY>
<TR>
<TD>头像</ TD>
<TD>の<input type = "ファイル" NAME = "アバター"> </ TD >
</ TR>
<TR>
<TD>描述:</ TD>
<TD>の<input type = "text"の名= "DESC"> </ TD>
</ TR>
<TR>
<TD> </ TD>
<TD>の<input type = "提出"値= "点击提交"> </ TD>
</ TR>
</ TBODY>
</ TABLE>
</ FORM>
</ BODY>
</ HTML>

OSのインポート
フラスコフラスコのインポート、要求、render_templateから
werkzeug.utilsインポートsecure_filenameから

のApp =フラスコ(name__ __)


@ app.route( '/アップロード/'、メソッド= [ 'GET'、 'POST'])
DEFアップロード():
request.method == 'POST' IF:
DESC = request.form.get( 'DESC')#記述情報を取得する
アバター= request.files.get( 'アバター') #取得ファイル:request.FILES
のファイル名= secure_filename(アバターハッカーがファイル名にトリックを果たしに対しては.filename)#:../../ユーザー/ XXX / .bashrcの
ファイルの保存avatar.save(os.path.join( 'ファイル'、ファイル名))#
印刷(DESC)
のリターン'ファイルが正常にアップロード'
リターンrender_template( 'upload.html')


:__name__ == '__main__' IF
アプリケーションを。実行(デバッグ=真)

 

获取文件

定义一个url与视图函数,来获取指定文件,在这个视图函数中,使用flask.send_from_directory(目录,文件名)来获取

import os
from flask import Flask, request, render_template, send_from_directory
from werkzeug.utils import secure_filename

app = Flask(__name__)


@app.route('/get_file/<filename>/')
def get_file(filename):
return send_from_directory('files', filename) # 文件路径,文件名

 

おすすめ

転載: www.cnblogs.com/zhongyehai/p/11845654.html