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 相关文章推荐
python内存管理分析
Apr 08 Python
Python导入txt数据到mysql的方法
Apr 08 Python
使用Python中的cookielib模拟登录网站
Apr 09 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
python交互式图形编程实例(三)
Nov 17 Python
实例讲解python中的协程
Oct 08 Python
python 快速把超大txt文件转存为csv的实例
Oct 26 Python
python读取csv和txt数据转换成向量的实例
Feb 12 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
python打开文件的方式有哪些
Jun 29 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
Python3的进程和线程你了解吗
Mar 16 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
phpMyadmin 用户权限中英对照
2010/04/02 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
小米5s微信跳一跳小程序python源码
2018/01/08 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
500行python代码实现飞机大战
2020/04/24 Python
python 调整图片亮度的示例
2020/12/03 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
高中体育教学反思
2014/01/29 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
用Python提取PDF表格的方法
2021/04/11 Python