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实例之wxpython中Frame使用方法
Jun 09 Python
详解Python中DOM方法的动态性
Apr 11 Python
连接Python程序与MySQL的教程
Apr 29 Python
Python中__new__与__init__方法的区别详解
May 04 Python
python下10个简单实例代码
Nov 15 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
解决python 读取 log日志的编码问题
Dec 24 Python
Python日志处理模块logging用法解析
May 19 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 Python
python基础学习之递归函数知识总结
May 26 Python
浅谈怎么给Python添加类型标注
Jun 08 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处理Oracle的CLOB实例
2014/11/03 PHP
总结对比php中的多种序列化
2016/08/28 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
2014年毕业演讲稿范文
2014/05/13 职场文书
国庆宣传标语
2014/06/30 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
经理聘任证明
2015/03/02 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技