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 的列表遍历删除实现代码
Apr 12 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
Python中一些深不见底的“坑”
Jun 12 Python
简单了解python单例模式的几种写法
Jul 01 Python
windows10环境下用anaconda和VScode配置的图文教程
Mar 30 Python
django实现后台显示媒体文件
Apr 07 Python
基于python实现获取网页图片过程解析
May 11 Python
深入了解python列表(LIST)
Jun 08 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
python中pycryto实现数据加密
Apr 29 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
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
Jquery 弹出层插件实现代码
2009/10/24 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
template.js前端模板引擎使用详解
2017/10/10 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
python解析xml模块封装代码
2014/02/07 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Atom的python插件和常用插件说明
2018/07/08 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
任课老师推荐信范文
2013/11/24 职场文书
法律专业实习鉴定
2013/12/22 职场文书
交通事故检查书范文
2014/01/30 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
股东协议书范本
2014/04/14 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
Nginx速查手册及常见问题
2022/04/07 Servers