flask之文件上传

1、创建表单提交页面,如:upload.html

<html>
<head>
  <title>File Upload</title>
</head>
<body>
    <form action="http://localhost:8888/uploadfile" method="POST" enctype="multipart/form-data">
        <input type="file" name="file001"  />
        <input type="submit" value="提交" />
    </form>
</body>
</html>

2、url地址关联表单提交页面

@app.route('/upload')
def uploadFile():
    return render_template('upload.html')

3、提交表单后定义执行保存的函数

@app.route('/uploadfile',methods=['GET','POST'])
def save():
    if request.method == 'POST':
        f = request.files['file001'] #提取文件
        f.save(os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(f.filename)))

4、完整演示代码

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

import os

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'upload/'   #app.config['UPLOAD_FOLDER'] 定义上传文件夹的路径 

@app.route('/upload')
def uploadFile():
    return render_template('upload.html')

@app.route('/uploadfile',methods=['GET','POST'])
def save():
    if request.method == 'POST':
        f = request.files['file001'] #提取文件
        f.save(os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(f.filename)))  #保存文件,目标文件的名称可以是硬编码的,也可以从 ​request.files[file] ​对象的​ filename ​属性中获取。但是,建议使用 ​secure_filename()​ 函数获取它的安全版本。
        return 'file uploaded successfully'
    else:
        return render_template('upload.html')

if __name__ == '__main__':
   app.run(debug=True)

相关推荐

  1. flask文件

    2023-12-08 17:28:01       41 阅读
  2. 挖漏洞文件

    2023-12-08 17:28:01       35 阅读
  3. SpringMVC文件

    2023-12-08 17:28:01       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 17:28:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 17:28:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 17:28:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 17:28:01       20 阅读

热门阅读

  1. JDK、JRE、JVM、SE、EE、ME的区别

    2023-12-08 17:28:01       32 阅读
  2. Requests库详解、详细使用、高级用法

    2023-12-08 17:28:01       34 阅读
  3. 折半查找(数据结构实训)

    2023-12-08 17:28:01       41 阅读
  4. 博客摘录「 C语言之二维数组赋值」

    2023-12-08 17:28:01       28 阅读
  5. kali常用命令

    2023-12-08 17:28:01       35 阅读
  6. springboot快速入门

    2023-12-08 17:28:01       38 阅读
  7. 虚拟化之Stage2地址翻译

    2023-12-08 17:28:01       36 阅读
  8. 对音频打上标签,从标签开始播放

    2023-12-08 17:28:01       38 阅读
  9. oceanBase存储返回多个值

    2023-12-08 17:28:01       38 阅读