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集合用法实例分析
May 30 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
Python实现截屏的函数
Jul 26 Python
Python探索之自定义实现线程池
Oct 27 Python
Python切片操作实例分析
Mar 16 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
Python 实现域名解析为ip的方法
Feb 14 Python
Python常用的json标准库
Feb 19 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
详解python UDP 编程
Aug 24 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
Terran魔法科技
2020/03/14 星际争霸
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
详解React中的组件通信问题
2017/07/31 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
scrapy爬虫完整实例
2018/01/25 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
Python tkinter实现日期选择器
2021/02/22 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
英语专业学生个人求职信
2014/01/28 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
合作协议书模板
2014/10/10 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL