python 使用poster模块进行http方式的文件传输到服务器的方法


Posted in Python onJanuary 15, 2019

这几天帮内部人员做一个文件传输的小工具,要用http的方式,在用django搭建了个小框架之后,如何进行传输,特别是大文件的传输,成为主要问题。经过查资料,最后选择了通过poster这个模块来进行文件的传输,方式如下:

from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2
def upload_file(url,upload_file_path,filename):
 register_openers()
 datagen, headers = multipart_encode({"file": open(upload_file_path, "rb"),"type":"uploadFile","filename":filename})
 request = urllib2.Request(url, datagen, headers)
 return urllib2.urlopen(request).read()

poster的用法可以参考官方文件:点击打开链接

其中,url为服务器的接收url,upload_file_path 为文件的绝对路径,filename是文件名称,当然这里我只是贴了上传文件的代码,认证方式可以根据自己的需要进行补充。这个代码放在客户端上,当接收到服务端要上传的文件时,将文件上传给服务端。

服务端在接收到这个文件流时,文件数据会保存在request的FILE信息中,可以通过这样的方式进行接收:

with open(full_path,'wb+') as f:
 for chunk in request.FILES.get('file').chunks():
 f.write(chunk)

full_path为保存的路径。

以上这篇python 使用poster模块进行http方式的文件传输到服务器的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中optparse模块使用浅析
Jan 01 Python
Python远程桌面协议RDPY安装使用介绍
Apr 15 Python
python通过ssh-powershell监控windows的方法
Jun 02 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
python的numpy模块安装不成功简单解决方法总结
Dec 23 Python
Python温度转换实例分析
Jan 17 Python
python抖音表白程序源代码
Apr 07 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
python APScheduler执行定时任务介绍
Apr 19 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 #Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
Jan 14 #Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 #Python
python 根据时间来生成唯一的字符串方法
Jan 14 #Python
python ipset管理 增删白名单的方法
Jan 14 #Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 #Python
在python 不同时区之间的差值与转换方法
Jan 14 #Python
You might like
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
PHP 常见郁闷问题答解
2006/11/25 PHP
php-fpm中max_children的配置
2019/03/15 PHP
倒记时60刷新网页的js代码
2014/02/18 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
详解webpack 入门与解析
2018/04/09 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
Django添加feeds功能的示例
2018/08/07 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
pytorch简介
2020/11/11 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
倩碧美国官网:Clinique美国
2016/07/20 全球购物
What is EJB
2016/07/22 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
物业管理应届生求职信
2013/10/28 职场文书
房地产融资计划书
2014/01/10 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
民事纠纷协议书
2016/03/23 职场文书