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实现一个转存纯真IP数据库的脚本分享
May 21 Python
TensorFlow变量管理详解
Mar 10 Python
python中使用print输出中文的方法
Jul 16 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
Python基础之操作MySQL数据库
May 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
实习单位接收函
2014/01/11 职场文书
小学母亲节活动方案
2014/03/14 职场文书
护士节策划方案
2014/05/19 职场文书
李敖北大演讲稿
2014/05/24 职场文书
公司员工活动策划方案
2014/08/20 职场文书
债务追讨律师函
2015/06/24 职场文书
小学运动会加油稿
2015/07/22 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技