Flask实现文件上传至指定目录的完整流程
本文介绍使用Flask框架实现文件上传至服务器指定目录的方法。重点讲解HTML表单中enctype属性必须设置为multipart/form-data,以及后端利用secure_filename处理文件名并保存至static/uploads文件夹的具体代码实现与运行效果展示。
本示例旨在构建一个简易页面,实现将用户选择的文件上传并保存至服务器指定文件夹的功能。
后端核心逻辑代码位于Sample.py文件中。
# coding:utf-8
from flask import Flask,render_template,request,redirect,url_for
from werkzeug.utils import secure_filename
import os
app = Flask(__name__)
@app.route('/upload', methods=['POST', 'GET'])
def upload():
if request.method == 'POST':
f = request.files['file']
basepath = os.path.dirname(__file__) # 当前文件所在路径
upload_path = os.path.join(basepath, 'static\uploads',secure_filename(f.filename)) #注意:没有的文件夹一定要先创建,不然会提示没有该路径
f.save(upload_path)
return redirect(url_for('upload'))
return render_template('upload.html')
if __name__ == '__main__':
app.run(debug=True)
前端页面模板代码位于upload.html文件中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>文件上传示例</h1>
<form action="" enctype='multipart/form-data' method='POST'>
<input type="file" name="file">
<input type="submit" value="上传">
</form>
</body>
</html>
在编写HTML表单时,必须注意<form>标签中需明确指定enctype属性为'multipart/form-data'。
该属性用于指定表单数据以二进制流形式编码,确保文件数据不被加密或错误解析,若未设置此属性,文件上传功能将无法正常工作。
配置完成后,接下来验证实际运行效果。
首先展示应用启动后的初始界面状态。

随后在页面中选择本地文件,并点击上传按钮提交请求。

提交成功后,页面会自动重定向回初始界面,同时确认上传的文件已成功保存至代码中指定的目录路径下。

文件上传功能的演示至此结束。
以上内容涵盖了Flask文件上传的核心要点,希望能为相关学习者提供参考,欢迎继续支持本站获取更多技术内容。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













