Tornado web开发之简单文件上传
1、介绍
我们知道,在web开发过程中,文件上传是经常用到的功能,比如上传附件,上传照片等
下面我们来介绍一下利用tornado 来实现文件上传功能
2.代码
由于实现文件上传的表单很简单,只需要几行html,我们把他们直接嵌入到python代码中
废话少说,直接上代码:
#!/usr/bin/python
#-*- encoding:utf-8 -*-
import tornado.ioloop
import tornado.web
import shutil
import osclass UploadFileHandler(tornado.web.RequestHandler):def get(self):self.write('''
<html><head><title>Upload File</title></head><body><form action='file' enctype="multipart/form-data" method='post'><input type='file' name='file'/><br/><input type='submit' value='submit'/></form></body>
</html>
''')def post(self):upload_path=os.path.join(os.path.dirname(__file__),'files') #文件的暂存路径file_metas=self.request.files['file'] #提取表单中‘name’为‘file’的文件元数据for meta in file_metas:filename=meta['filename']filepath=os.path.join(upload_path,filename)with open(filepath,'wb') as up: #有些文件需要已二进制的形式存储,实际中可以更改up.write(meta['body'])self.write('finished!')app=tornado.web.Application([(r'/file',UploadFileHandler),
])if __name__ == '__main__':app.listen(3000)tornado.ioloop.IOLoop.instance().start()
加入shutil当初是为了把暂存在本地的文件移到其他目录中,本代码中未实现
Tornado web开发之简单文件上传相关推荐
- 详细阐述Web开发中的图片上传问题
Web开发中,图片上传是一种极其常见的功能.但是呢,每次做上传,都花费了不少时间. 一个"小功能"花费我这么多时间,真心不愉快. So,要得认真分析下原因. 1.在最初学习Java ...
- 【arduino】arudino开发ESP32 SPIFFS文件上传方法
微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 之前发过ESP8266的SPIFFS文件及上传方法: [arduino]arudino ...
- Web项目的Excel文件上传、解析、导入
谨以实际开发中所学到的第一个功能来纪念我的第一篇博客,如有不足之处,万望各位大神不吝指出. Web项目的开发过程中,通常会用到上传Excel文件的功能.将一个Excel文件从本地文件系统中获取,并将其 ...
- NetCore开发的分布式文件上传系统
日常如果是上传一些小文件,在程序实现中,我们都是直接上传,一般都没什么问题.如果针对大文件上传的业务中,就会面临着: 1.网速问题,导致文件上传超时,而导致失败. 2.效率问题,上传大文件等待时间过长 ...
- .NET和.NET Core Web APi FormData多文件上传
[导读]最近因维护.NET和.NET Core项目用到文件上传功能,虽说也做过,但是没做过什么对比,借此将二者利用Ajax通过FormData上传文件做一个总结,通过视图提交表单太简单,这里不做阐述, ...
- Web前端 input file 文件上传优化
前言: 在Web开发过程中,当项目做得越来越大时,文件上传功能也会被使用得非常多,之前项目经理反馈一个问题,就是当点击[选择上传文件]按扭时,弹出文件浏览框总是很慢,点击上传按扭后,要很久文件选择窗口 ...
- 19. web 应用常用功能 -文件上传下载
文章目录 19.1 基本介绍 19.2 文件上传 19.2.1 文件上传的基本原理 19.2.2 文件上传应用实例 19.2.3 文件上传注意事项和细节 19.3 文件下载 19.3.1 文件下载的原 ...
- salesforce 零基础学习(四十二)简单文件上传下载
项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...
- springboot---fastDFS 简单文件上传/下载/删除
本来想简单的记录一下上传/下载,后来看着看着,发现这块的知识点太多.就记录下简单的操作,后面在补充 这里采用fastdfs分布式文件系统的形式来进行操作的(关于fastdfs的知识点有很多,这里就不赘 ...
最新文章
- 关于linux内存管理
- vue项目中的tab页实现
- 统一代码段与非一致代码段
- WGAN的提出背景以及解决方案
- 启用物料账后,有两种物料价格确定方式
- mysql group_concat distinct,如何在MySQL中使用GROUP_CONCAT和CONCAT与DISTINCT引用单列值?...
- [草稿]几款硬盘数据共享产品技术选型
- C++中vector的用法
- 信息学奥赛一本通1142:单词的长度
- html为民间 图标不见了,win7 电脑右下角的图标不见了 怎么弄
- w7设置双显示器_win7系统设置双显示器多屏幕模式的操作方法
- Linux/docker下mysql创表自动大写
- 禁止html5手机端双击页面放大的问题
- 图数据库HugeGraph简介与快速入门
- 获取各种屏幕大小(包括电脑屏幕)
- js 和 min.js 有什么区别
- PostgreSQL登录及修改密码
- vue3学习笔记(ref, reactive, setup, hook...)
- 数学分析常用的4款软件对比!
- Deprecation Warning:
热门文章
- 【电商AI】商业情境中的机器学习|湾区人工智能
- php函数声明提前,php的日期处理函数及uchome的function_coomon中日期处理函数的研究...
- 在 Visual Studio .NET 中使用 SQL Server 2000 创建数据库应用程序(1)
- 小鹏汽车2021财年总收入209.9亿元 同比增长259.1%
- 微信发虎年新春贺词领福袋:游戏皮肤、QQ音乐VIP、现金红包等
- 联想拯救者Y90关键参数曝光:22GB运存+640GB超大存储
- 英特尔推出第二代神经拟态研究芯片Loihi 2和全新Lava软件框架
- 英特尔发布全新显卡品牌“锐炫” 首款显卡将于 2022 年上市
- 马斯克:如果我不担任CEO 特斯拉就会完蛋
- 东风、吉利、比亚迪等车企被工信部点名 因产品不符合标准