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 实现文件的全备份和差异备份详解
Dec 27 Python
K-近邻算法的python实现代码分享
Dec 09 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
利用Python如何实现一个小说网站雏形
Nov 23 Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
详解Python绘图Turtle库
Oct 12 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
如何通过命令行进入python
Jul 06 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
Oct 29 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来检测proxy
2006/10/09 PHP
PHP 身份证号验证函数
2009/05/07 PHP
php递归调用删除数组空值元素的方法
2015/04/28 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
Python中关于使用模块的基础知识
2015/05/24 Python
Python numpy 点数组去重的实例
2018/04/18 Python
python查看模块安装位置的方法
2018/10/16 Python
【python】matplotlib动态显示详解
2019/04/11 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
空气环保标语
2014/06/12 职场文书
物资采购方案
2014/06/12 职场文书
生物工程专业求职信
2014/09/03 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
土建施工员岗位职责
2015/04/11 职场文书
单位证明范文
2015/06/18 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
详解Mysql 函数调用优化
2021/04/07 MySQL
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL