首页 > 其他分享 >flask中如何处理文件上传下载

flask中如何处理文件上传下载

时间:2023-06-10 11:45:57浏览次数:30  
标签:__ 文件 flask config 上传下载 filename path 上传 app

flask中处理文件的上传下载很简单。

基础配置:

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

在post请求下用于调用 upload() 函数处理上传过程,在'/download/<filename>'请求下可以通过文件名下载对应提交文件

以下是 Flask 应用程序的 Python 代码

from flask import Flask, render_template, request, send_from_directory
from werkzeug.utils import secure_filename
import os
import uuid

app = Flask(__name__)

# 设置文件上传保存路径
app.config['UPLOAD_FOLDER'] = 'static/upload/'
# MAX_CONTENT_LENGTH设置上传文件的大小,单位字节
app.config['MAX_CONTENT_LENGTH'] = 1 * 1024 * 1024

@app.route('/upload', methods=['GET', 'POST'])
def upload():
    # 如果是get请求响应上传视图,post请求响应上传文件
    if(request.method == 'GET'):
        return render_template('upload.html');
    else:
        f = request.files['file'];
        fname = secure_filename(f.filename);
        ext = fname.rsplit('.')[-1];
        # 生成一个uuid作为文件名
        fileName = str(uuid.uuid4()) + "." + ext;
        # os.path.join拼接地址,上传地址,f.filename获取文件名
        f.save(os.path.join(app.config['UPLOAD_FOLDER'], fileName))
        return 'ok';

# 图片下载
@app.route('/download/<filename>', methods=['GET'])
def download(filename):
    if request.method == "GET":
        #通过文件名下载文件
        path = os.path.isfile(os.path.join(app.config['UPLOAD_FOLDER'], filename));
        if path:
            return send_from_directory(app.config['UPLOAD_FOLDER'], filename, as_attachment=True)

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

上传:

  1.secure_filename()函数来处理文件名,可以更加安全;

  2.通过request.files来获取文件内容

  3.save(‘路径’)来保存

下载:

  send_from_directory(‘路径’)函数来实现文件下载

 

标签:__,文件,flask,config,上传下载,filename,path,上传,app
From: https://www.cnblogs.com/shaoyishi/p/17470986.html

相关文章

  • Linux删除文件名为乱码的文件或文件夹
    在Linux系统下命令行是无法输出汉字的,如果要删除带有汉字的文件或文件夹,只需要查看文件的节点号,删除对应的节点号即可。首先我们要查看文件的节点号查看节点号执行ls-i命令,查看文件的节点号(节点号为每个文件前面显示的数字)找到文件的节点号便可以进行下一步操作,删除节点......
  • spring boot ResourceUtil工具类获取不到jar的classPath下面文件问题
    先说结论这种方式是获取不到jar里面的文件的,但是在本地可以跑,打成jar包就读取不到文件了,即便ResourceUtils是spring提供的。Filefile=ResourceUtils.getFile("classpath:temp\\file\\info.txt");spring提供的ClassPathResource对象是可以在本地和jar环境都获取到资源......
  • 小程序配置文件--全局配置文件
    1、pages进行页面的创建以及页面的一对一覆盖即,在pages里面进行路径的保存之后,会自动在文件里面进行相应的文件的创建;即,将路径顺序进行修改,第一个页面会自动成为首页,其余亦如此;2、window主要是关于导航栏样式以及界面样式的编写和设计,下面这张图片:这三条语句,都是导航栏的......
  • 用python获取文件夹中文件的路径,基础路径,后缀,复制文件等。
    #读取文件夹中文件的路径#方法一importosimportshutilwenjianjia=r'D:\Desktop\内部培训python'#文件夹绝对路径#r的作用是去除转义字符lujing=os.listdir(wenjianjia)#获取文件夹中所有文件的相对路径返回一个列表forlujing_listinlujing......
  • Python从命令行参数和配置文件获取信息
    实际开发中,很多时候需要从外部获取数据,根据用户的输入或配置信息来决定下一步应采取的行为。除了使用内置函数input()或者GUI库的控件和对话框来接收用户输入以外,还可以使用sys和argparse模块来接收命令行参数,使用configparser模块从外部配置文件中获取信息。sys模块的argv是一个包......
  • Python批量Excel文件数据导入SQLite数据库的优化方案
    说明:1)需要安装扩展库openpyxl;2)随着数据库的增大,导入速度可能会有所下降;3)本文只考虑Python代码优化,没有涉及数据库的优化;4)本文要点在于使用executemany实现批量数据导入,通过减少事务提交次数提高导入速度。fromrandomimportchoice,randrangefromstringimportdigits,ascii......
  • Python统计多个Powerpoint文件中幻灯片总数量
    晚上吃饭时突然想知道自己做了多少页《Python程序设计》系列教材的配套PPT,于是就有了下面的代码,这套PPT综合了《Python程序设计基础》(ISBN:9787302410584)、《Python程序设计(第2版)》(ISBN:9787302436515)和《Python可以这样学》(ISBN:9787302456469)以及将要出版的《Python程序设计开发宝典......
  • 使用Python读写文本文件内容
    本文主要演示如何读写文本文件的内容,以及上下文管理语句with的用法。使用上下文管理语句with时,即使在操作文件内容时引发异常也能保证文件被正确关闭。#'w'表示写入文件,默认为文本文件#如果文件test1.txt不存在,就创建#如果文件test1.txt已存在,就覆盖withopen('test1.txt','w')......
  • Python批量提取PDF文件中的文本
    首先需要执行命令pipinstallpdfminer3k来安装处理PDF文件的扩展库。importosimportsysimporttimepdfs=(pdfsforpdfsinos.listdir('.')ifpdfs.endswith('.pdf'))forpdf1inpdfs:pdf=pdf1.replace('','_').replace('-......
  • 使用Python提取JPEG图像文件dpi并计算物理尺寸
    感谢浙江省浦江中学方春林老师提供的问题、测试图像和第一版本的代码!下面的代码需要安装Python图像处理库pillow,由于不同公司对JPEG压缩算法和格式的实现不完全一样,有些类型的jpg文件暂时无法提取dpi信息,如果找到好的办法的话后期会再进行补充。fromosimportlistdirfromPILim......