flask实现文件的上传
文件上传过程中,一定要进行文件大小的校验,如果用户上传文件过大,比如:100GB,所以一直在处理这个请求,别的请求进来就无法处理了,所以要限制上传文件的大小。
flask中文件上传大小的校验
flask中,提供了校验文件大小的机制,所以在配置文件中进行配置,并重写异常返回信息即可。
设置配置文件:app.config['MAX_CONTENT_LENGTH']=1024 * 1024 * 5
自定制错误返回信息
在flask内部,会帮我们校验,如果上传文件大于设置,会返回一个 413 的异常

所以自定义这个413的异常信息
@app.errorhandler(413)
def error(arg):
ret = make_response('上传文件最大支持:5M')
ret.status_code = 413
return ret
自定制异常信息
这个在mac和linux上不报错,但是在Windows下会报错,解决方式
from gevent.pywsgi import WSGIServer
from flask import Flask,request,render_template,make_response app = Flask(__name__)
app.debug = True
app.config['MAX_CONTENT_LENGTH'] = 1024 *1024 * 7 @app.route('/')
def hello():
return 'Hello World' @app.route('/upload',methods=['GET','POST'])
def upload():
if request.method == 'POST':
file = request.files.get('file')
print(file.stream)
return render_template('upload.html') @app.errorhandler(413)
def error(arg):
ret = make_response('上传文件最大支持:5M')
ret.status_code = 413
return ret if __name__ == '__main__':
# app.run(host='127.0.0.1',port=5000)
http_server = WSGIServer(('127.0.0.1', 5000), app)
http_server.serve_forever()
解决Windows下的报错
文件的压缩和解压
需要借助python标准库中的shutil模块的两个方法
压缩:shutil.make_archive("文件压缩后存放的路径","压缩的格式","要压缩的文件路径")
解压:解压tar包 shutil._unpack_tarfile("要解压的文件路径或者一个bytes类型的文件对象","解压后文件的存放路径")
解压zip包 shutil._unpack_zipfile()
备注:压缩文件中还有中文文件名会报错

flask实现文件的上传的更多相关文章
- flask 文件的上传下载和excel操作
文件的下载 from flask import send_from_directory @excel_bp.route('/get_attachment/<path:filename>') ...
- Flask下如何处理Requests 上传中文文件名的问题
一.问题的由来 最近有个项目,叫做文档服务资源中心,类似于七牛,为各个业务系统提供统一的文件资源服务,包括文件的存储.操作管理.下载.预览等.在做文件存储的时候,遇到了这个当指定上传的文件名为 ...
- 带进度条的文件批量上传插件uploadify
有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案. 先上效果图: 一. 下载uploadify 从官网下载uploadify的Flash版本(Flash版本免费,另 ...
- C# 用原生JS进行文件的上传
1.此文章是用原生JS来进行文件的上传,有两个版本,一个不用ajax,一个用ajax. 1)非AJAX <!DOCTYPE html> <html> <head> ...
- ssh整合问题总结--在添加商品模块实现图片(文件)的上传
今天在做毕设(基于SSH的网上商城项目)中碰到了一个文件上传的需求,就是在后台管理员的商品模块中,有一个添加商品,需要将磁盘上的图片上传到tomcat保存图片的指定目录中: 完成这个功能需要两个步,第 ...
- 文件的上传(如何兼容火狐与IE)与国际化的原理
1.文件的上传 [1] 简介 > 将本地的文件上传到服务器中 > 用户需要通过一个表单将文件上传到服务器中 [2] 表单的设置 ...
- java实现ftp文件的上传与下载
最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...
- 在SpringMVC框架下实现文件的 上传和 下载
在eclipse中的javaEE环境下:导入必要的架包 web.xml的配置文件: <?xml version="1.0" encoding="UTF-8" ...
- .Net多文件同时上传(Jquery Uploadify)
前提:领导给了我一个文件夹,里面有4000千多张产品图片,每张图片已产品编号+产品名称命名,要求是让我把4000多张产品图片上传到服务器端,而且要以产品编码创建n个文件夹,每张图片放到对应的文件夹下. ...
随机推荐
- class文件访问标志
class文件中用两个字节共16位代表访问标志(access flags),用于表明该类或接口被访问时能提供的一些信息: 标志名称 标志值 含义 ACC_PUBLIC 0x00 01 是否为Publi ...
- docker镜像的仓库
一.docker镜像的仓库 --- repos-registry的创建: 仓库分为公共仓库和私有仓库 DockerHub的官方仓库 https://hub.docker.com DockerPool社 ...
- eclipse搭建简单的web服务,使用tomcat服务
打开eclipse,新建web project, 若本机安装的eclipse版本高,jdk版本低,提示当前版本不适合,解决方法,通过Windows搜索Java,点击配置Java,之后如下图:
- SqlServer数据库查看被锁表以及解锁Kill杀死进程
步骤1.查看锁表进程 2.杀死进程 --1.查询锁表进程 spid.和被锁表名称 tableName select request_session_id spid,OBJECT_NAME ...
- 【Lua程序设计第四版练习题答案】ch01 Lua语言入门
联系1.1: 运行阶乘的示例并观察,如果输入负数,程序会出现什么问题?试着修改代码来解决问题. -- 定义一个计算阶乘的函数 function fact (n) if n == 0 then re ...
- 类属性与对象实现,init方法的作用,绑定方法,绑定方法与普通函数的区别,继承,抽象与继承,派生与覆盖
今日内容: 1.类属性与对象属性 2.init方法的作用 3.绑定方法 4.绑定方法与普通函数的区别(非绑定方法) 5.继承 6.抽象与继承 7.派生与覆盖 1.类属性与对象属性 类中应该进存储所有对 ...
- cisco路由器配置(三) 最终网关
Gateway(config)#ip route 0.0.0.0 0.0.0.0 217.124.6.1 /*管理距离为1/orGateway(config)#ip route 0.0.0.0 0. ...
- 【DSP开发】解读TI的KeyStone II云技术应用
最近,德州仪器(TI)公司推出6款最新KeyStone II多核SoC,助力云应用.TI公司多核DSP中国市场开发经理蒋亚坚先生向媒体讲解了这6款KeyStone II新产品的特点与目标应用. ...
- 为什么要学习Hive
一 为什么要学习HIVE? 为什么不是ORACLE和MYSQL? 因为大数据时代 数据量成几何倍数增长,并且数据量非常庞大.大到要用PB EB这种量级去衡量.而我们的ORACLE/MYQL这种 ...
- powerdesigner去掉网格线
powerdesigner去掉网格线 去掉网格线