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列出目录下指定文件与子目录的方法
Jul 03 Python
python常见的格式化输出小结
Dec 15 Python
利用aardio给python编写图形界面
Aug 21 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
Python Numpy库安装与基本操作示例
Jan 08 Python
在Tensorflow中查看权重的实现
Jan 24 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
django使用graphql的实例
Sep 02 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
Django admin组件的使用
Oct 24 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 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中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
ThinkPHP实现支付宝接口功能实例
2014/12/02 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP反射学习入门示例
2019/06/14 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
js操作二进制数据方法
2018/03/03 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
python的else子句使用指南
2016/02/27 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
python读取和保存图片5种方法对比
2018/09/12 Python
Django model序列化为json的方法示例
2018/10/16 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
Python过滤序列元素的方法
2020/07/31 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
Linux常见面试题
2016/10/04 面试题
线程同步的方法
2016/11/23 面试题
农业大学毕业生的个人自我评价
2013/10/11 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
PHP实现两种排课方式
2021/06/26 PHP