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程序中实现分布式进程的教程
Apr 28 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
Dec 24 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
Python模块_PyLibTiff读取tif文件的实例
Jan 13 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
python中最小二乘法详细讲解
Feb 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
php smarty的预保留变量总结
2008/12/04 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
python中format()函数的简单使用教程
2018/03/14 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
职位说明书范文
2014/05/07 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
安全演讲稿开场白
2014/08/25 职场文书
财政局个人年终总结
2015/03/03 职场文书
食品安全责任书范本
2015/05/09 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
Python基本知识点总结
2022/04/07 Python
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers