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-基础-入门 简介
Aug 09 Python
Python OS模块常用函数说明
May 23 Python
python实现DES加密解密方法实例详解
Jun 30 Python
Python 的类、继承和多态详解
Jul 16 Python
python查询mysql,返回json的实例
Mar 26 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
Python列表切片操作实例总结
Feb 19 Python
python实现发送form-data数据的方法详解
Sep 27 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
Django如何实现防止XSS攻击
Oct 13 Python
基于Python制作一副扑克牌过程详解
Oct 19 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文件操作的详细诠释
2013/06/21 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
python实现二维码扫码自动登录淘宝
2016/12/27 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
华润集团网上药店:健一网
2016/09/19 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
出纳岗位职责
2013/11/09 职场文书
女生抽烟检讨书
2014/10/05 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书