Python-FLASK上传文件

news/2024/9/19 4:36:09/ 标签: python, flask, 开发语言

一、HTML文件

1、avator.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="upload"><input type="file" name="avator" id="avator" /><input type="submit" name="save" id="save" />
</form>
</body>
</html>

1、upload.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>上传成功</title>
</head>
文件名:{{ myfile }}
<p>你的头像上传成功!</p>
<img width="80px" src="/static/image/{{ myfile }}" />
</body>
</html>二、上传文件
  1. file = request.files['avator']

    • request.files 是一个特殊的字典对象,用于存储通过HTTP请求上传到Flask应用程序的文件。
    • 'avator' 是请求中表单字段的名称。在HTML表单中,有一个这样的文件输入:<input type="file" name="avator">。这里的name属性值就是'avator'
    • request.files['avator'] 返回一个Werkzeug的FileStorage对象,该对象表示用户上传的文件。这个对象包含了文件的内容及其相关信息,比如文件名。
  2. file.save(...):

    • file 变量此时是一个FileStorage对象,包含了上传文件的所有信息。
    • file.save(...) 是FileStorage对象的方法,用于将上传的文件保存到服务器的文件系统中。save()方法的参数是你希望文件被保存在服务器上的路径。

因此,在这两行代码中,file是一个变量名,用于引用FileStorage对象。file承载了上传的文件数据,并提供了一些方法(如save)用于处理文件,比如将其保存到磁盘。

@app.route('/upload', methods=['POST'])
def upload():file = request.files['avator']myfilename=file.filenamefile.save('static/image/'+myfilename)return render_template('upload.html', myfile=myfilename)

还可以这样写:

@app.route('/upload', methods=['POST'])

def upload():

file = request.files['file']

file_name = file.filename

file_path = os.path.join('path/to/save/file/', file_name)

file.save(file_path)

return render_template('upload.html', myfile=myfilename)


http://www.ppmy.cn/news/1521020.html

相关文章

【游戏安全】CheatEngine基础使用——表面加密的原理、如何破解表面加密?如何解决每次关掉程序找到的属性都会消失这个问题?指针扫描

游戏安全 表面加密原理 指针扫描原理 表面加密 原理 从之前的文章中可以知道&#xff0c;这个游戏中是单浮点类型的数据&#xff0c;进行扫描后发现了这么多&#xff0c;对数据进行修改后看效果。 可以看到数据被改为999&#xff0c;这里消耗一次要500&#xff0c;所以点完之…

【Python 千题 —— 算法篇】词频统计

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在日常开发和文本处理工作中,单词计数是一个非常基础但又极为重要的操作。无论是统计一篇文章的词频,还是分析一段文本的关键词,单词计数都起着关键作用…

AI语音机器人:通过 Azure Speech 实现类人类的交互

语音对话的重要性 在竞争日益激烈的客户互动领域&#xff0c;人工智能语音对话正成为重中之重。随着数字参与者的崛起&#xff0c;组织认识到语音机器人的强大力量&#xff0c;它是一种自然而直观的沟通方式&#xff0c;可以提供类似人类的体验&#xff0c;深度吸引用户&#…

Gin框架中的单个路由中间件:深入理解Next与Abort

Gin是一个高性能的Go语言Web框架&#xff0c;它提供了灵活的中间件机制来处理HTTP请求。在Gin中&#xff0c;中间件可以对请求进行预处理和后处理&#xff0c;而c.Next()和c.Abort()是控制请求处理流程的两个关键方法。本文将通过一个示例详细介绍这两个方法的使用和作用。 1.…

关于一个早期的计算机网络的理解

电脑网络这个新鲜玩意儿&#xff0c;到底是怎样的呢&#xff1f; 2017年11月30日星期四&#xff0c; 我以前回答过这个问题&#xff0c; 简单点举个例子来理解&#xff0c;电脑网络就很形象的被说明了&#xff0c; 它本身就是一张网&#xff0c;一张看不见摸不着但还能用得着的…

图像去噪实验:基于全变分(TV)模型的MATLAB实现

一、背景 全变分模型在图像处理领域中被广泛用于去除噪声&#xff0c;同时保持图像边缘的清晰度。 二、实验步骤 图像的读取、噪声添加、去噪处理以及结果的显示。 三、实验仿真结果图 四、结论 全变分模型是一种有效的图像去噪方法&#xff0c;它能够在去除噪声的同时&#…

【WPF动画】

关于 WPF 中 System.Windows.Media.Animation 命名空间下常用动画类的简要介绍、使用方法和适用场景的表格 使用场景解释&#xff1a;示例代码1示例代码2&#xff1a;使用 Storyboard 组合多个动画代码解释应用场景 动画类描述使用示例适用场景DoubleAnimation用于为 double 类…

驱动开发系列17 - PCI总线

一:概述 PCI(外设计算机互连)或PCIe总线是现代计算机的主要组成部分,了解它的工作原理对于理解许多Linux设备驱动程序非常重要。 关于PCI总线本身有很多好的信息(在维基百科和其他地方),而Linux内核中也有关于PCI处理子系统实际实现的文档。然而,这两种现有来源…

云原生 | 在 Kubernetes 中使用 Cilium 替代 Calico 网络插件实践指南!

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 0x00 简述介绍 什么是 Cilium? Cilium 是一款开源软件,它基于一种名为eBPF的新的Linux内核技术提供动力,用于透明地保护使用 Docker 和 Kubernetes 等Linux 容器管理平台中部署的应用程序服务之间的网络连接,Ciliu…

深度解析RAG技术在大模型时代的原理与实践

RAG的概念 QCon北京2024上涉及了很多大模型应用落地场景&#xff0c;出现比较多的应用模式关键词是&#xff1a;AI Agent和RAG&#xff08;RAG也常被在Agent的Cot或是Mutil-Agent协作的流程中&#xff09;。 &#xff0c;那什么是RAG&#xff1f; 本文将基于RAG的核心组件、…

Web攻防之应急响应(二)

目录 前提 &#x1f354;学习Java内存马前置知识 内存马 内存马的介绍 内存马的类型众多 内存马的存在形式 Java web的基础知识&#xff1a; Java内存马的排查思路&#xff1a; &#x1f354;开始查杀之前的需要准备 1.登录主机启动服务器 2.生成jsp马并连接成功 …

Python实现 ElGamal 加密算法

目录 使用 Python 实现 ElGamal 加密算法的博客引言ElGamal 加密算法的工作原理Python 面向对象实现 ElGamal 算法代码解析示例场景&#xff1a;安全消息传输代码解析Python 代码的扩展和优化总结 使用 Python 实现 ElGamal 加密算法的博客 引言 ElGamal 加密算法 是一种基于…

绿色无广告,纯净体验——2024年优质免费视频剪辑软件

如果你习惯一个视频网站的时候&#xff0c;工作上遇到问题也会第一时间在视频网站上进行搜索解决方案。就比如我同事就很喜欢在短视频网站上搜索Office软件的一些操作步骤。如果你也想分享这类视频&#xff0c;那么我们一起探讨下有哪些适合抖音剪辑的视频剪辑工具。 1.福昕视…

magisk+lsposed hook okhttp3采集小红书app端接口(包含完整源码)(2024-09-03)

摘要&#xff1a; 本文介绍如何通过hook OkHttp3框架来拦截并处理应用的网络响应&#xff0c;特别是在某书APP中&#xff0c;通过深入理解Okhttp3的API&#xff0c;hook RealCall以获取请求和响应数据&#xff0c;实现关键词搜索、笔记和用户等数据的回传操作。 一、原理介…

商品信息的标准化

销售环节的数字化见效最快 现在&#xff0c;企业的数字化是非常热的话题&#xff0c;工业&#xff14;.&#xff10;&#xff0c;人工智能&#xff0c;物联网&#xff0c;机器人都是企业数字化转型的主要方向&#xff0c;但是某些时候&#xff0c;我们走的太远&#xff0c;却忘…

2409vue,vue3.5更新

原文 今天,很高兴地发布Vue3.5! 此次要版本不包含破坏更改,只包括内部改进和有用的新函数.这里包含一些亮点. 反应式系统优化 在3.5中,Vue的响应式系统经历了另一次重大重构,实现了更好性能并显著提高了(-56%)内存使用率而行为不变. 此重构还解决了在SSR时,因挂起计算而导…

微服务中的服务降级与熔断机制

目录&#xff1a; 1、简介2、服务降级2.1. Hystrix基础配置2.2. 启用Hystrix2.3. 实现服务降级2.4. 配置Hystrix 3、熔断机制3.1. 配置熔断器3.2. 查看Hystrix Dashboard 1、简介 在微服务架构中&#xff0c;服务降级与熔断机制是保证系统稳定性和可靠性的关键技术。当系统中的…

flowable 国产数据库并发性能优化

最近在生产环境有用户反馈系统流转速度较慢&#xff0c;这边用的是金仓数据库&#xff0c;这边查了数据库的慢sql日志&#xff0c;最后发现问题&#xff0c;以下是部分慢sql的执行时间截图 主要都是流转过程中更新执行表和历史变量表执行时间较长&#xff0c;于是查了表的默认索…

2024年全国铁路(铁路、高铁、地铁)矢量数据集

数据更新时间​&#xff1a;2024年6月​&#xff1b; ​数据范围&#xff1a;全国各省&#xff08;不包含台湾&#xff09;; 数据格式​&#xff1a;shp; ​数据包含类型&#xff1a;铁路、高铁、地铁 数据​坐标信息&#xff1a; EPSG Code 4326 大地基准面 D_WGS_1…

【OpenGL】 理解makeCurrent函数

背景 用QT学校OpenGL绝对可以事半功倍&#xff0c;QT提供了一系列对OpenGL的支持&#xff0c;包括OPenGL窗口类&#xff0c;对OpenGL函数的面向对象的封装等。 总体说明 在Qt框架中&#xff0c;makeCurrent 是QOpenGLContext类的一个方法&#xff0c;它封装了这些平台特定的…