Python实现基于HTTP文件传输实例


Posted in Python onNovember 08, 2014

本文实例讲述了Python实现基于HTTP文件传输的方法。分享给大家供大家参考。具体实现方法如下:

一、问题:

因为需要最近看了一下通过POST请求传输文件的内容 并且自己写了Server和Client实现了一个简单的机遇HTTP的文件传输工具

二、实现代码:

Server端:

#coding=utf-8

from BaseHTTPServer import BaseHTTPRequestHandler

import cgi

class   PostHandler(BaseHTTPRequestHandler):

    def do_POST(self):

        form = cgi.FieldStorage(

            fp=self.rfile,

            headers=self.headers,

            environ={'REQUEST_METHOD':'POST',

                     'CONTENT_TYPE':self.headers['Content-Type'],

                     }

        )

        self.send_response(200)

        self.end_headers()

        self.wfile.write('Client: %sn ' % str(self.client_address) )

        self.wfile.write('User-agent: %sn' % str(self.headers['user-agent']))

        self.wfile.write('Path: %sn'%self.path)

        self.wfile.write('Form data:n')

        for field in form.keys():

            field_item = form[field]

            filename = field_item.filename

            filevalue  = field_item.value

            filesize = len(filevalue)#文件大小(字节)

            print len(filevalue)

            with open(filename.decode('utf-8')+'a','wb') as f:

                f.write(filevalue)

        return

if __name__=='__main__':

    from BaseHTTPServer import HTTPServer

    sever = HTTPServer(('localhost',8080),PostHandler)

    print 'Starting server, use <Ctrl-C> to stop'

    sever.serve_forever()

Client端:
#coding=utf-8

import requests

url = 'http://localhost:8080'

path = u'D:快盘阿狸头像.jpg'

print path

files = {'file': open(path, 'rb')}

r = requests.post(url, files=files)

print r.url,r.text

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Pyramid添加Middleware的方法实例
Nov 27 Python
使用python绘制人人网好友关系图示例
Apr 01 Python
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
OpenCV实现人脸识别
Apr 07 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
Python3几个常见问题的处理方法
Feb 26 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
python两种注释用法的示例
Oct 09 Python
Pandas搭配lambda组合使用详解
Jan 22 Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 #Python
Python set集合类型操作总结
Nov 07 #Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 #Python
Python的subprocess模块总结
Nov 07 #Python
Python实现的监测服务器硬盘使用率脚本分享
Nov 07 #Python
Python实现的简单发送邮件脚本分享
Nov 07 #Python
Python获取Linux系统下的本机IP地址代码分享
Nov 07 #Python
You might like
PHP新手上路(九)
2006/10/09 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
Python复制文件操作实例详解
2015/11/10 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
详解Python3中的 input() 函数
2020/03/18 Python
python实现图像全景拼接
2020/03/27 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
酒店门卫岗位职责
2013/12/29 职场文书
经理任命书模板
2014/06/06 职场文书
股东出资证明书范例
2014/10/04 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
初中作文评语
2014/12/25 职场文书
2015年中秋节主持词
2015/07/30 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server