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算法学习之计数排序实例
Dec 18 Python
Python lambda和Python def区别分析
Nov 30 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
Python代码太长换行的实现
Jul 05 Python
Python matplotlib绘制饼状图功能示例
Sep 10 Python
pygame实现五子棋游戏
Oct 29 Python
python中栈的原理及实现方法示例
Nov 27 Python
python3.5的包存放的具体路径
Aug 16 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 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
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
Python多线程和队列操作实例
2015/06/21 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
python实现决策树分类(2)
2018/08/30 Python
django解决跨域请求的问题
2018/11/11 Python
pyqt5实现登录界面的模板
2020/05/30 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
calendar在python3时间中常用函数举例详解
2020/11/18 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
MADE法国:提供原创设计师家具
2018/09/18 全球购物
便利店投资的创业计划书
2014/01/12 职场文书
青岛海底世界导游词
2015/02/11 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
个人催款函范文
2015/06/24 职场文书