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中的__future__模块
Apr 27 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 Python
基于python进行桶排序与基数排序的总结
May 29 Python
解决PyCharm同目录下导入模块会报错的问题
Oct 13 Python
使用Template格式化Python字符串的方法
Jan 22 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
Python qqbot 实现qq机器人的示例代码
Jul 11 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
Python使用openpyxl批量处理数据
Jun 23 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开发工具之vs2005图解
2008/01/12 PHP
PHP session会话的安全性分析
2011/09/08 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
克隆javascript对象的三个方法小结
2011/01/12 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
javascript实现移动端轮播图
2020/12/09 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
对python:print打印时加u的含义详解
2018/12/15 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
python实现滑雪游戏
2020/02/22 Python
Django 再谈一谈json序列化
2020/03/16 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
工作失职检讨书范文
2014/01/16 职场文书
端午节活动策划方案
2014/03/09 职场文书
农村党支部承诺书
2015/04/30 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript