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 web基础之加载静态文件实例
Mar 20 Python
Python简单定义与使用二叉树示例
May 11 Python
分享vim python缩进等一些配置
Jul 02 Python
django框架使用方法详解
Jul 18 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
30秒学会30个超实用Python代码片段【收藏版】
Oct 15 Python
简单介绍一下pyinstaller打包以及安全性的实现
Jun 02 Python
Python如何绘制日历图和热力图
Aug 07 Python
PyTorch安装与基本使用详解
Aug 31 Python
python判断变量是否为列表的方法
Sep 17 Python
python 实现简单的计算器(gui界面)
Nov 11 Python
Django利用AJAX技术实现博文实时搜索
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
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
php设计模式 Singleton(单例模式)
2011/06/26 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
PHP 无限级分类
2017/05/04 PHP
php之可变变量的实例详解
2017/09/12 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
vue生命周期实例小结
2018/08/15 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
Django框架模板介绍
2019/01/15 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
python中_del_还原数据的方法
2020/12/09 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
应届毕业生简历自我评价
2014/01/31 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书