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读取word文档的方法
May 09 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
python操作mysql数据库
Mar 05 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
python基础教程项目四之新闻聚合
Apr 02 Python
python操作excel的方法(xlsxwriter包的使用)
Jun 11 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
Python闭包的定义和使用方法
Apr 11 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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
2015/07/15 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python测试人员需要掌握的知识
2018/02/08 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
Python中函数参数匹配模型详解
2019/06/09 Python
深入了解Django中间件及其方法
2019/07/26 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
联想台湾官网:Lenovo TW
2018/05/09 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
如何掌握自荐信格式呢
2013/11/19 职场文书
学生党员思想汇报
2013/12/28 职场文书
代办社保委托书范文
2014/10/06 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
女性健康知识讲座通知
2015/04/23 职场文书