Flask实现文件上传至指定目录的完整流程

巷口听风
巷口听风
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍使用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文件上传的核心要点,希望能为相关学习者提供参考,欢迎继续支持本站获取更多技术内容。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表