W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在 Flask 中處理文件上傳非常簡單。它需要一個 HTML 表單,其 ?enctype
? 屬性設置為“?multipart/form-data”
?,將文件發(fā)布到 URL。
URL 處理程序從 ?request.files[]
? 對象中提取文件,并將其保存到所需的位置。
每個上傳的文件首先會保存在服務器上的臨時位置,然后將其實際保存到它的最終位置。
目標文件的名稱可以是硬編碼的,也可以從 ?request.files[file]
?對象的? filename
?屬性中獲取。
但是,建議使用 ?secure_filename()
? 函數(shù)獲取它的安全版本。
可以在 Flask 對象的配置設置中定義默認上傳文件夾的路徑和上傳文件的最大大小。
app.config['UPLOAD_FOLDER'] 定義上傳文件夾的路徑
app.config['MAX_CONTENT_LENGTH'] 指定要上傳的文件的最大大?。ㄒ宰止?jié)為單位)
以下代碼具有 ?'/upload'
?URL 規(guī)則,該規(guī)則在 templates 文件夾中顯示? 'upload.html'
?,以及 ?'/upload-file'
?URL 規(guī)則,用于調(diào)用 ?uploader()
?函數(shù)處理上傳過程。
?'upload.html'
?有一個文件選擇器按鈕和一個提交按鈕。
<html>
<head>
<title>File Upload</title>
</head>
<body>
<form action="http://localhost:5000/uploader" method="POST" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="提交" />
</form>
</body>
</html>
您將看到如下所示的界面。
選擇文件后,單擊提交。
表單的? post
?方法調(diào)用? '/upload_file'
? URL。
底層函數(shù) ?uploader()
? 執(zhí)行保存操作。
以下是 Flask 應用程序的 Python 代碼。
from flask import Flask, render_template, request
from werkzeug.utils import secure_filename
import os
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'upload/'
@app.route('/upload')
def upload_file():
return render_template('upload.html')
@app.route('/uploader',methods=['GET','POST'])
def uploader():
if request.method == 'POST':
f = request.files['file']
print(request.files) f.save(os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(f.filename)))
return 'file uploaded successfully'
else:
return render_template('upload.html')
if __name__ == '__main__':
app.run(debug=True)
注意:app.config['UPLOAD_FOLDER'] = 'upload/'
upload 前面不能加“/”。
上傳成功會顯示以下畫面:
上次文件被放到根目錄的 upload 文件夾下:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: