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使用ftplib实现简易FTP客户端的方法
Jun 03 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
python实现旋转和水平翻转的方法
Oct 25 Python
python正向最大匹配分词和逆向最大匹配分词的实例
Nov 14 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
浅谈Python中文件夹和python package包的区别
Jun 01 Python
5款实用的python 工具推荐
Oct 13 Python
详解Python中__new__方法的作用
Mar 31 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
PL-880隐藏功能
2021/03/01 无线电
一个ubbcode的函数,速度很快.
2006/10/09 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python splitlines使用技巧
2008/09/06 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
Python学习小技巧总结
2018/06/10 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
由面试题加深对Django的认识理解
2019/07/19 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
英语专业毕业生自我鉴定
2013/11/09 职场文书
上班早退检讨书
2014/01/09 职场文书
医药个人求职信范文
2014/01/29 职场文书
自我鉴定总结
2014/03/24 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书