Flask 实现文件上传和下载(简单但实用)
目录结构和代码
root@master ~/w/upload# ll
total 4.0K
drwxr-xr-x. 3 root root 21 Jul 2 17:32 static/
drwxr-xr-x. 2 root root 25 Jul 5 17:40 templates/
-rw-r--r--. 1 root root 819 Jul 5 09:55 upload.pyroot@master ~/workspace# tree upload/
upload/
|-- static
| `-- uploads
|-- templates
| `-- upload.html
`-- upload.py3 directories, 2 files
upload.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>upload:</h1><form action="" enctype='multipart/form-data' method='POST'><input type="file" name="file"><input type="submit" value="upload"></form>
</body>
</html>
upload.py
# coding:utf-8from flask import Flask, render_template, request, redirect, url_for
from flask import send_from_directory
from werkzeug.utils import secure_filename
import osapp = 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', f.filename)f.save(upload_path)print('uploading ...')return redirect(url_for('download'))return render_template('upload.html')@app.route('/download')
def download():print('downloading ...')return send_from_directory(r"/root/", "test.sh", as_attachment=True)if __name__ == '__main__':app.run(host="0.0.0.0", debug=True)
上传和下载测试
启动服务(默认端口是 5000):
root@master ~/w/upload# python3 upload.py* Serving Flask app "upload" (lazy loading)* Environment: productionWARNING: This is a development server. Do not use it in a production deployment.Use a production WSGI server instead.* Debug mode: on* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)* Restarting with stat* Debugger is active!* Debugger PIN: 332-961-513
选择上传文件(如果页面打不开,可以先用 systemctl stop firewalld 命令关闭防火墙或者开放指定端口):
点击上传(上传后自动下载了测试文件 test.sh):
上传成功:
Flask 实现文件上传和下载(简单但实用)相关推荐
- python selenium 下载文件_Python Selenium —— 文件上传、下载,其实很简单
很多selenium学习者被浏览器弹出的文件上传.下载框折磨的痛不欲生,今天博主就带你们轻松搞定上传和下载问题. 上传 上传弹框 文件上传是所有UI自动化测试都要面对的一个头疼问题,要处理这个问题,我 ...
- springBoot 简单优雅是实现文件上传和下载
前言 好久没有更新spring Boot 这个项目了.最近看了一下docker 的知识,后期打算将spring boot 和docker 结合起来.刚好最近有一个上传文件的工作呢,刚好就想起这个脚手架 ...
- ASP.NET MVC实现简单的文件上传与下载
使用ASP.NET MVC实现简单的文件上传与下载. 1.上传文件HTML <form action='@Url.Action("Upload", "File&qu ...
- Flask 文件上传与下载
文件上传与下载在平时开发中很常见,所以也是很重要的一部分.下面来一起看看flask中的文件上传与下载. 相关配置 # 设置文件上传保存路径 app.config['UPLOAD_FOLDER'] = ...
- php从ftp下载文件到本地,php使用ftp实现文件上传与下载功能
本文实例为大家分享了php ftp文件上传与下载的具体代码,供大家参考,具体内容如下 ftp文件上传 php自带有ftp操作的函数包,一个比较简单实现的ftp文件上传操作可以通过以下几个步骤来完成: ...
- WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传、下载
MTOM消息优化传输机制主要应用于大量数据的传输,很多文章中也直接得出结论:使用MTOM文件传输效率高.为什么MTOM的数据传输效率会比别的方式要高?MTOM真的如此完美吗,它有什么不足?什么情况下使 ...
- 科普|不同协议下远程服务器文件上传_下载优劣对比
作为一个程序员,如果不知道如何进行远程服务器的文件上传与下载,实在是一件尴尬的事情.打开百度,搜索「远程服务器 上传下载」,你能得到 63,100,000 个搜搜结果,五花八门的操作方式的让人眼花缭乱 ...
- SpringBoot 文件上传、下载、设置大小
本文使用SpringBoot的版本为2.0.3.RELEASE 1.上传单个文件 ①html对应的提交表单 <form action="uploadFile" method= ...
- 一篇文章教你学会使用SpringBoot实现文件上传和下载
文章目录 一.搭建SpringBoot开发环境 1.创建项目 2.配置application.properties参数 3.实体响应类和异常信息类 4.创建FileController 二.接口测试 ...
最新文章
- pythonsvc_sklearn-SVC实现与类参数详解
- Machine Learning On Spark——基础数据结构(一)
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 用友政务知识管理平台_云创数字政务大数据平台,助力政务工作高效管理
- 刷新率调高,或高于60Hz闪屏,忽明忽暗,晃动问题
- C++中继承和派生详解(公有、私有、保护继承的区别)
- 零基础学启发式算法(3)-禁忌搜索 (Tabu Search)
- dataframe在最后新增一行_【TOOLS】python中对Excel进行写入操作,写入一列或者一行(openpyxl)...
- Github之深入解析如何在托管在不同系统的项目上使用Git客户端
- DEAP 框架(遗传算法)模块笔记
- 皮尔逊相关系数(Pearson Correlation)
- FPGA和USB3.0通信-UVC摄像机
- Hibernate手动控制事物
- Ubuntu1804编译QWebEngine
- 华云大咖说 | 安超OS全面升级 最新亮点解密
- 文字转图片,文字水印图片,合成图片,教你 Python 生成网站原创配图!
- 嵌入式Linux永久修改MAC和IP(特别适用多个网卡设计)
- ABAP删除字符串某字符
- 龙迅LT7211方案|CS5211替代LT7211设计DP to 2-port LVDS转接板方案原理图+PCB板
- java 蓝牙读取数据格式,单片机与安卓手机通过蓝牙串口模块利用JSON数据格式通信实例...
热门文章
- 2018-2019-2 20165212《网络对抗技术》Exp9 Web安全基础
- 保护模式下C语言编程,关于windows ring3保护模式与中断调用
- 【模型库】日本数控铣床RAPIMA,RMX-15 三位模型
- 有哪些好用的进销存系统值得推荐?
- 照片不小心删除了?用Thumbs.db来恢复吧
- SolidWorks非标自动化设计全过程,建议收藏
- fc重装机兵计算机密码,fc重装机兵(机甲战士)(MM1)最全攻略秘籍
- 闭环步进电机SDK开发
- python爬知网全文期刊数据库_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...
- vue 实现PC端微信扫码登录(二维码内嵌网页版)