flask 上传文件


from flask import Flask, request, render_template,redirect, url_for
from werkzeug.utils import secure_filename
import os
from flask import send_from_directory # send_from_directory可以从目录加载文件app = Flask(__name__)#UPLOAD_FOLDER = 'media'  # 注意:要提前在根目录下新建media文件,否则会报错
'''
报错路径找不到:
要解决此问题,可以将反斜杠替换为正斜杠,或者使用原始字符串字面值指定文件路径.
通过在字符串前添加r,它就变成了一个原始字符串文字,并且反斜杠将被解释为文字反斜杠而不是转义字符。
'''
#UPLOAD_FOLDER = 'D:\pythonXangmu\pythonproject01\flask\caiquan2\media'
UPLOAD_FOLDER = r'D:\pythonXangmu\pythonproject01\flask\caiquan2\media'ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER # UPLOAD FOLDER 英文上传文件夹# 判断上传的文件是否是允许的后缀
def allowed_file(filename):return "." in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS#把.@app.route('/')
def index():return render_template('upload.html')@app.route('/center/upload',methods=['POST'])#对应表单里面的action="/upload"
def center():if "file" not in request.files: #"file" 对应前端upload.html 中的namereturn redirect(request.url)#redirect 重定向新的地址file = request.files.get('file')  # 获取文件if not allowed_file(file.filename): #如果不是传入的指定格式文件。重定向到当前urlreturn redirect(request.url)if file and allowed_file(file.filename):filename = secure_filename(file.filename)  # 用这个函数确定文件名称是否是安全file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))  # 保存文件  os.path.join把目录和文件名合成一个路径return redirect(url_for('show', filename=filename))# 展示
@app.route('/show/<filename>')
def show(filename):# send_from_directory可以从目录加载文件return send_from_directory(app.config['UPLOAD_FOLDER'], filename)if __name__ == '__main__':app.run(host='0.0.0.0', port=5000, debug=True)

upload.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文件上传</title>
</head>
<body><form action="/center/upload" method="post" enctype="multipart/form-data"><input type="file" name="file"><input type="submit"  value="提交"></form></body>
</html>

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199921.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

会声会影2024购买多少钱 会声会影在哪里购买

掌握视频编辑技术&#xff0c;能为我们的工作和生活带来很多帮助。例如&#xff1a;将我们精心编辑的视频&#xff0c;上传到抖音、快手等平台进行变现&#xff1b;通过天马行空的视频创意&#xff0c;摇身一变成为B站up主。因此&#xff0c;拥有一款像会声会影这样的视频编辑软…

信号可靠性剖析

问题 基于信号发送的进程间通信方式可靠吗&#xff1f;&#xff1f;&#xff1f; 信号查看(kill -l) 信号的分类 不可靠信号 (传统信号) 信号值在 [1, 31] 之间的所有信号 可靠信号 (实时信号) 信号值在 [SIGRTMIN&#xff0c;SIGRTMAX]&#xff0c;即&#xff1a;[34&…

计算机组成原理学习-总线总结

复习本章时&#xff0c;思考以下问题&#xff1a; 1)引入总线结构有什么好处&#xff1f;2)引入总线结构会导致什么问题&#xff1f;如何解决&#xff1f;

变电站设计综合应用软件

产品概述 变电站设计综合应用软件,以下称为软件,是一款面向智能变电站虚拟二次回路设计和光纤回路设计的单机版桌面应用软件。软件为用户提供了直观易用、一键安装、功能齐全的轻量级的设计支撑。像常规的工具化软件一样,该软件在开始设计时需要通过新建一个项目,开启一段…

【C++】const关键字的详解!!

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Android MVVM+coroutine+retrofit+flow+hilt

文章目录 Android MVVMcoroutineretrofitflowhilt概述依赖注入层数据层视图层模型视图层代码下载 Android MVVMcoroutineretrofitflowhilt 概述 代码结构&#xff1a; 依赖注入层 数据库&#xff1a; Module InstallIn(SingletonComponent::class) class DBModule {Singleto…

数据结构与算法-D2D3线性表之顺序表

线性表&#xff1a;包含若干数据元素的一个线性序列&#xff0c;特征如下&#xff1a; 1&#xff09;对非空表&#xff0c;a0是表头&#xff0c;无前驱&#xff1b; 2&#xff09;an-1是表尾&#xff0c;无后继&#xff1b; 3&#xff09;其他元素仅且仅有一个前驱&#xff0c;…

基于YOLOv8深度学习的120种犬类检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战、狗类检测、犬种识别

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【“C++ 精妙之道:解锁模板奇谭与STL精粹之门“】

【本节目标】 1. 泛型编程 2. 函数模板 3. 类模板 4. 什么是STL 5. STL的版本 6. STL的六大组件 7. STL的重要性 8. 如何学习STL 9.STL的缺陷 1. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int& right) {int temp left;lef…

odoo自定义提示性校验

背景: 在odoo16的原生的代码里&#xff0c;可以给按钮添加一个 confirm属性&#xff0c;从而达到 提示性校验的效果。 问题&#xff1a; 这个属性加了之后一定会弹出提示性校验的对话框&#xff0c;于是如何根据我们的实际业务&#xff0c;从后端返回提示性信息&#xff0c;…

5.2k Star!一个可视化全球实时天气开源项目!

大家好&#xff0c;本文给大家推荐一款全球实时天气开源项目&#xff1a;Earth。 项目简介 Earth 是一个可视化全球天气实况的项目。该项目以可视化的方式展示了全球的天气情况&#xff0c;提供了风、温度、相对湿度等多种天气数据&#xff0c;以及风、洋流和波浪的动画效果…

2-1、地址加法器CS:IP

语雀原文链接 文章目录 1、CPU组成2、通用寄存器16位寄存器的存储16位寄存器兼容8位word 和 byte进位问题 3、地址加法器不同的段地址和偏移地址表示同一个物理地址偏移地址的范围一个段的起始地址一定是16的倍数 4、CS:IPCS IP工作过程jmp修改CS:IP 5、DS和[address]DS和[add…

蓝桥杯算法心得——仙界诅咒(dfs)

大家好&#xff0c;我是晴天学长&#xff0c;搜索型的dfs&#xff0c;差点开二维矩阵了&#xff0c;仔细一想&#xff0c;没那么夸张啊&#xff0c;哈哈哈&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1…

性能工具之JMeter二次开发总结

文章目录 一、前言二、自定义脚本三、自定义请求编写&#xff08;Java Sampler&#xff09;四、自定义函数五、小结 一、前言 掌握 JMeter 的脚本编写和执行&#xff0c;这基本已满足大部分的性能测试需求&#xff0c;但是面对各种各样的项目技术方案&#xff0c;有些需求是需…

mybatis多表查询(xml)

多表查询都用resultMap resultMap 说白了就是他可以手动设置映射参数&#xff0c;例如 可以指定 column代表数据库的参数 property 代表实体类的参数 <id column"roleid" property"id"></id> column代表数据库的参数 property 代表实体类…

【隐私计算】安全三方计算(3PC)的加法和乘法计算协议

ABY3中采用replicated secret sharing&#xff08;复制秘密分享&#xff09;机制&#xff0c;即2-out-of-3秘密分享&#xff0c;三个参与方的每一方都拥有share中的两份。下面来看一下这样做有什么好处。 2-out-of-3秘密分享 有 x , y x, y x,y两个操作数&#xff0c;先进行秘…

列表插槽使用

{label: 是否展示,prop: isShow,solt: true, }<!--自定义列 展示 1 不展示 0 --><template slot-scope"scope" slot"display"><div style"color: red;cursor: pointer"><el-switch v-model"scope.row.display" :…

在gitlab中使用gitlab-sshd替换ssh服务

参考&#xff1a;https://docs.gitlab.com/ee/administration/operations/gitlab_sshd.html 说明 gitlab-sshd 是 OpenSSH 的轻量级替代品&#xff0c;用于提供 SSH 操作。虽然 OpenSSH 使用受限的 shell 方法&#xff0c;但 gitlab-sshd 的行为更像是一个现代的多线程服务器应…

ssm的网上奶茶店系统(有报告)。Javaee项目。

演示视频&#xff1a; ssm的网上奶茶店系统&#xff08;有报告&#xff09;。Javaee项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMvc Mybat…

智能优化算法应用:基于动物迁徙算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于动物迁徙算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于动物迁徙算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.动物迁徙算法4.实验参数设定5.算法结果6.参考…