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开发之简单文件上传相关推荐

  1. 详细阐述Web开发中的图片上传问题

    Web开发中,图片上传是一种极其常见的功能.但是呢,每次做上传,都花费了不少时间. 一个"小功能"花费我这么多时间,真心不愉快. So,要得认真分析下原因. 1.在最初学习Java ...

  2. 【arduino】arudino开发ESP32 SPIFFS文件上传方法

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 之前发过ESP8266的SPIFFS文件及上传方法: [arduino]arudino ...

  3. Web项目的Excel文件上传、解析、导入

    谨以实际开发中所学到的第一个功能来纪念我的第一篇博客,如有不足之处,万望各位大神不吝指出. Web项目的开发过程中,通常会用到上传Excel文件的功能.将一个Excel文件从本地文件系统中获取,并将其 ...

  4. NetCore开发的分布式文件上传系统

    日常如果是上传一些小文件,在程序实现中,我们都是直接上传,一般都没什么问题.如果针对大文件上传的业务中,就会面临着: 1.网速问题,导致文件上传超时,而导致失败. 2.效率问题,上传大文件等待时间过长 ...

  5. .NET和.NET Core Web APi FormData多文件上传

    [导读]最近因维护.NET和.NET Core项目用到文件上传功能,虽说也做过,但是没做过什么对比,借此将二者利用Ajax通过FormData上传文件做一个总结,通过视图提交表单太简单,这里不做阐述, ...

  6. Web前端 input file 文件上传优化

    前言: 在Web开发过程中,当项目做得越来越大时,文件上传功能也会被使用得非常多,之前项目经理反馈一个问题,就是当点击[选择上传文件]按扭时,弹出文件浏览框总是很慢,点击上传按扭后,要很久文件选择窗口 ...

  7. 19. web 应用常用功能 -文件上传下载

    文章目录 19.1 基本介绍 19.2 文件上传 19.2.1 文件上传的基本原理 19.2.2 文件上传应用实例 19.2.3 文件上传注意事项和细节 19.3 文件下载 19.3.1 文件下载的原 ...

  8. salesforce 零基础学习(四十二)简单文件上传下载

    项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...

  9. springboot---fastDFS 简单文件上传/下载/删除

    本来想简单的记录一下上传/下载,后来看着看着,发现这块的知识点太多.就记录下简单的操作,后面在补充 这里采用fastdfs分布式文件系统的形式来进行操作的(关于fastdfs的知识点有很多,这里就不赘 ...

最新文章

  1. 关于linux内存管理
  2. vue项目中的tab页实现
  3. 统一代码段与非一致代码段
  4. WGAN的提出背景以及解决方案
  5. 启用物料账后,有两种物料价格确定方式
  6. mysql group_concat distinct,如何在MySQL中使用GROUP_CONCAT和CONCAT与DISTINCT引用单列值?...
  7. [草稿]几款硬盘数据共享产品技术选型
  8. C++中vector的用法
  9. 信息学奥赛一本通1142:单词的长度
  10. html为民间 图标不见了,win7 电脑右下角的图标不见了 怎么弄
  11. w7设置双显示器_win7系统设置双显示器多屏幕模式的操作方法
  12. Linux/docker下mysql创表自动大写
  13. 禁止html5手机端双击页面放大的问题
  14. 图数据库HugeGraph简介与快速入门
  15. 获取各种屏幕大小(包括电脑屏幕)
  16. js 和 min.js 有什么区别
  17. PostgreSQL登录及修改密码
  18. vue3学习笔记(ref, reactive, setup, hook...)
  19. 数学分析常用的4款软件对比!
  20. Deprecation Warning:

热门文章

  1. 【电商AI】商业情境中的机器学习|湾区人工智能
  2. php函数声明提前,php的日期处理函数及uchome的function_coomon中日期处理函数的研究...
  3. 在 Visual Studio .NET 中使用 SQL Server 2000 创建数据库应用程序(1)
  4. 小鹏汽车2021财年总收入209.9亿元 同比增长259.1%
  5. 微信发虎年新春贺词领福袋:游戏皮肤、QQ音乐VIP、现金红包等
  6. 联想拯救者Y90关键参数曝光:22GB运存+640GB超大存储
  7. 英特尔推出第二代神经拟态研究芯片Loihi 2和全新Lava软件框架
  8. 英特尔发布全新显卡品牌“锐炫” 首款显卡将于 2022 年上市
  9. 马斯克:如果我不担任CEO 特斯拉就会完蛋
  10. 东风、吉利、比亚迪等车企被工信部点名 因产品不符合标准