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 struct.unpack
Sep 06 Python
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
Python递归实现汉诺塔算法示例
Mar 19 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
bat批处理之字符串操作的实现
Mar 16 Python
Python何绘制带有背景色块的折线图
Apr 23 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和ACCESS写聊天室(六)
2006/10/09 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
详解vue中组件参数
2018/07/09 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
vue3.0 上手体验
2020/09/21 Javascript
Python解惑之整数比较详解
2017/04/24 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
成教自我鉴定
2013/10/27 职场文书
外贸学院会计专业应届生求职信
2013/11/14 职场文书
经济学博士求职自荐信范文
2013/11/23 职场文书
入团者的自我评价分享
2013/12/02 职场文书
广告创意求职信
2014/03/17 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
企业计划生育责任书
2015/05/09 职场文书
python 中的jieba分词库
2021/11/23 Python
python开发制作好看的时钟效果
2022/05/02 Python
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS