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爬虫教程之爬取百度贴吧并下载的示例
Mar 07 Python
在Python中使用pngquant压缩png图片的教程
Apr 09 Python
Python的多态性实例分析
Jul 07 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
用python处理图片实现图像中的像素访问
May 04 Python
python 读取文本文件的行数据,文件.splitlines()的方法
Jul 12 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
python连接、操作mongodb数据库的方法实例详解
Sep 11 Python
浅析python redis的连接及相关操作
Nov 07 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中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
Python实现完整的事务操作示例
2017/06/20 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Python爬虫文件下载图文教程
2018/12/23 Python
详解Python装饰器
2019/03/25 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
浅析Python 条件控制语句
2020/07/15 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
Python中过滤字符串列表的方法
2020/12/22 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
欧洲著名的二手奢侈品网站:Vestiaire Collective
2020/03/07 全球购物
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
卖车协议书
2014/04/21 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python