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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
python自动zip压缩目录的方法
Jun 28 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
浅谈Python基础之I/O模型
May 11 Python
在CMD命令行中运行python脚本的方法
May 12 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
在python中用url_for构造URL的方法
Jul 25 Python
Pytorch的mean和std调查实例
Jan 02 Python
Python : turtle色彩控制实例详解
Jan 19 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
Apr 01 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
浅析Python __name__ 是什么
Jul 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 APC的安装与使用详解
2013/06/13 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
python编程开发之日期操作实例分析
2015/11/13 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
用友笔试题目
2016/10/25 面试题
英语生日邀请函
2014/01/23 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
公司借条范本
2015/05/25 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
Python实现机器学习算法的分类
2021/06/03 Python