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中给List添加元素的4种方法分享
Nov 28 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
Python实现修改IE注册表功能示例
May 10 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
简单了解python的内存管理机制
Jul 08 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
Python 点击指定位置验证码破解的实现代码
Sep 11 Python
python3 mmh3安装及使用方法
Oct 09 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 Python
Python入门之使用pandas分析excel数据
May 12 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 screw加密php源代码
2013/06/20 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
10款实用的PHP开源工具
2015/10/23 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
调试代码导致IE出错的避免方法
2014/04/04 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
Node登录权限验证token验证实现的方法示例
2020/05/25 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python三级菜单的实例
2017/09/13 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
pytorch permute维度转换方法
2018/12/14 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
Python imread、newaxis用法详解
2019/11/04 Python
Python PyQt5整理介绍
2020/04/01 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
员工考核评语大全
2014/04/26 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
golang操作rocketmq的示例代码
2022/04/06 Golang