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 相关文章推荐
Python3实现从指定路径查找文件的方法
May 22 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
python入门前的第一课 python怎样入门
Mar 06 Python
Python列表生成式与生成器操作示例
Aug 01 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
python numpy 反转 reverse示例
Dec 04 Python
sklearn的predict_proba使用说明
Jun 28 Python
用opencv给图片换背景色的示例代码
Jul 08 Python
零基础学Python之前需要学c语言吗
Jul 21 Python
python递归函数用法详解
Oct 26 Python
Django celery异步任务实现代码示例
Nov 26 Python
Python Pandas数据分析之iloc和loc的用法详解
Nov 11 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
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
python函数不定长参数使用方法解析
2019/12/14 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
小学清明节活动方案
2014/03/08 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL