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多线程http下载实现示例
Dec 30 Python
python3实现短网址和数字相互转换的方法
Apr 28 Python
python matplotlib画图实例代码分享
Dec 27 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
python 进程 进程池 进程间通信实现解析
Aug 23 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
如何通过python实现全排列
Feb 11 Python
python数据预处理 :数据抽样解析
Feb 24 Python
django form和field具体方法和属性说明
Jul 09 Python
pycharm无法安装cv2模块问题
May 20 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 curl参数的详解
2013/06/17 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
vue实现文字加密功能
2019/09/27 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
python常见的格式化输出小结
2016/12/15 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
用python实现名片管理系统
2020/06/18 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
函数指针的定义是什么
2016/08/14 面试题
服务中心夜班服务员岗位职责
2013/11/27 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
早会主持词
2014/03/17 职场文书
军训拉歌口号
2014/06/13 职场文书
收款授权委托书
2014/10/02 职场文书
死亡证明书样本说明
2014/10/18 职场文书
加强作风建设工作总结
2014/10/23 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS