您的位置:58脚本 > flask文件上传 Flask 文件上传

flask文件上传 Flask 文件上传

2023-04-04 04:32 Flask教程

flask文件上传 Flask 文件上传

flask文件上传 Flask 文件上传

flask文件上传

在 Flask 中处理文件上传非常简单。它需要一个 HTML 表单,其 ​enctype​ 属性设置为“​multipart/form-data”​,将文件发布到 URL。

URL 处理程序从 ​request.files[]​ 对象中提取文件,并将其保存到所需的位置。


每个上传的文件首先会保存在服务器上的临时位置,然后将其实际保存到它的最终位置。

目标文件的名称可以是硬编码的,也可以从 ​request.files[file] ​对象的​ filename ​属性中获取。

但是,建议使用 ​secure_filename()​ 函数获取它的安全版本。


可以在 Flask 对象的配置设置中定义默认上传文件夹的路径和上传文件的最大大小。

app.config["UPLOAD_FOLDER"] 定义上传文件夹的路径 
app.config["MAX_CONTENT_LENGTH"] 指定要上传的文件的最大大小(以字节为单位)

以下代码具有 ​"/upload" ​URL 规则,该规则在 templates 文件夹中显示​ "upload.html"​,以及 ​"/upload-file" ​URL 规则,用于调用 ​uploader() ​函数处理上传过程。

"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 ​方法调用​ "/upload_file"​ URL。

底层函数 ​uploader()​ 执行保存操作。 

以下是 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 文件夹下:




阅读全文
以上是58脚本为你收集整理的flask文件上传 Flask 文件上传全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS