- 浏览: 436096 次
- 性别:
文章分类
最新评论
-
nianhua2008:
你好,请问哪个cocos版本可以读取cbx文件?
Cocos3dx入门 -
ihic11:
我的为什么Receive.jsp一直有乱码?请帮忙
网银在线支付注意事项 -
奔跑的蓝猫:
楼主你好!请问这两个文件怎么使用啊?
楼主能把源代码发给我下吗 ...
简易视频聊天 -
wx_hello:
不错。。学习了。。
jquery解析xml -
ocaicai:
圣人啊,救星啊,我被这个问题折磨得蛋疼!对了,我在google ...
struts2+urlrewrite
# -*- coding:UTF-8 -*- ''' Created on 2010-4-26 @author: shiyong ''' import urllib import sys import urllib2 import mimetools, mimetypes import os, stat from IdongNet import IdongNet from UserManager import UserManager import cookielib class Callable: def __init__(self, anycallable): self.__call__ = anycallable # Controls how sequences are uncoded. If true, elements may be given multiple values by # assigning a sequence. doseq = 1 class MultipartPostHandler(urllib2.BaseHandler): handler_order = urllib2.HTTPHandler.handler_order - 10 # needs to run first def http_request(self, request): data = request.get_data() if data is not None and type(data) != str: v_files = [] v_vars = [] try: for(key, value) in data.items(): if type(value) == file: v_files.append((key, value)) else: v_vars.append((key, value)) except TypeError: systype, value, traceback = sys.exc_info() raise TypeError, "not a valid non-string sequence or mapping object", traceback if len(v_files) == 0: data = urllib.urlencode(v_vars, doseq) else: boundary, data = self.multipart_encode(v_vars, v_files) contenttype = 'multipart/form-data; boundary=%s' % boundary if(request.has_header('Content-Type') and request.get_header('Content-Type').find('multipart/form-data') != 0): print "Replacing %s with %s" % (request.get_header('content-type'), 'multipart/form-data') request.add_unredirected_header('Content-Type', contenttype) request.add_data(data) return request def multipart_encode(vars, files, boundary = None, buffer = None): #@NoSelf if boundary is None: boundary = mimetools.choose_boundary() if buffer is None: buffer = '' for(key, value) in vars: buffer += '--%s\r\n' % boundary buffer += 'Content-Disposition: form-data; name="%s"' % key buffer += '\r\n\r\n' + value + '\r\n' for(key, fd) in files: file_size = os.fstat(fd.fileno())[stat.ST_SIZE] filename = os.path.basename(fd.name) contenttype = mimetypes.guess_type(filename)[0] or 'application/octet-stream' buffer += '--%s\r\n' % boundary buffer += 'Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename) buffer += 'Content-Type: %s\r\n' % contenttype # buffer += 'Content-Length: %s\r\n' % file_size fd.seek(0) buffer += '\r\n' + fd.read() + '\r\n' buffer += '--%s--\r\n\r\n' % boundary return boundary, buffer multipart_encode = Callable(multipart_encode) https_request = http_request class FileUploadMgr(object): ''' 管理系统文件上传 ''' def __init__(self): ''' Constructor ''' def upload_file(self,post_params): ''' 功能描述:上传文件 ''' cookies = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),MultipartPostHandler) response = opener.open("http://us.i-dong.com/outer/server.action", post_params) return response.read() def upload_user_portrait(self,optType,width,height,portraitFile): ''' 功能描述:用户注册时或者更改个人信息的时候,上传自定义头像 参数说明: optType string 标识图片作用参数 0:个人头像 width string 图片压缩宽带,如:'800' height string 图片压缩高度,如:'600' portraitFile File(Python的文件对象) 上传的文件,上传的文件类型为:jpeg、gif、bmp、png、pjpeg、x-png 返回值:xml文档字符串 ''' post_params = {} post_params['userID'] = IdongNet.IdongID post_params['version'] = IdongNet.version post_params['webKey'] = IdongNet.webKey post_params['optType'] = optType post_params['width'] = width post_params['height'] = height post_params['portraitFile'] = portraitFile post_params['key'] = 'uploadUserPortrait' return self.upload_file(post_params) if __name__ == '__main__': print UserManager.login(1, '205599','123456') fileuploadMgr = FileUploadMgr() logofile = open('C:\\1.jpg','rb') print fileuploadMgr.upload_user_portrait('0', '800' , '600', logofile)
评论
2 楼
bluky999
2011-12-14
文件上传的时候,必须按照标准HTTP协议来自己编码的? 没有现成的模块直接用么?
1 楼
xzs315
2011-08-30
IdongNet 是个什么东西啊?
发表评论
-
ubuntu下使用apache发布Django应用
2010-12-20 09:21 2211一、安装Django 1、下载地址 http://www.dj ... -
【转】Python如何使用urllib2获取网络资源
2010-10-29 20:04 1970urllib2是Python的一个获取URLs(Uniform ... -
python获取系统、平台相关的信息
2010-10-26 16:23 1053python获取系统、平台相关的信息 可使用以下两个模块: ... -
python打印详细的异常信息
2010-09-20 15:44 1256import traceback print trace ... -
python编码问题
2010-08-23 13:26 4337出现错误: UnicodeDecodeError: 'asc ... -
python比较值类型是否为字符串
2010-08-04 14:56 876value:要判断的值 isinstance(value ... -
使用C/C++扩展Python
2010-07-20 16:20 0方式一、使用VC++6.0 1、配置VC++6.0环境 1) ... -
Python sqllit实例
2010-07-15 10:21 17101、操作数据库 # -*- coding: UTF-8 -* ... -
Python日期计算
2010-05-28 10:38 16311、将字符串转换成date nowDate = time.st ... -
python发送邮件
2010-05-27 11:15 3227# -*- coding:UTF-8 -*- ''' ... -
Python多线程实例
2010-05-08 17:01 1639特别注意: 加锁的位置一定要只包住临界资源,如: self.s ... -
Python实现ping命令
2010-05-08 12:49 10719#!/usr/bin/env python # -*- co ... -
wxPython GUI菜单示例
2010-05-07 22:31 16751、main.py #!/usr/bin/env python ... -
py2exe简单使用
2010-05-06 15:46 13491、首先下载已安装的对应Python版本的py2exe 2、将 ... -
Python截屏程序
2010-05-06 13:31 2424说明:必须安装PIL库 # -*- coding:UTF-8 ... -
文件夹差异文件对比工具
2010-05-05 15:44 1508# -*- coding:UTF-8 -*- ''' Cr ... -
Python获取本机公网IP(windows、Linux下通用)
2010-04-23 15:24 3638class Getmyip: def getip(s ... -
Python随机生成字符串
2010-04-22 15:25 1642class RandomUtil(): ... -
Python执行外部程序
2010-04-21 15:52 4007# -*- coding:UTF-8 -*- impo ... -
Python对象转换为xml
2010-04-20 17:41 8059# -*- coding:UTF-8 -*- ''' Cr ...
相关推荐
在Python编程语言中,文件上传是一项常见的任务,特别是在web开发、数据处理和文件管理场景中。本主题将深入探讨Python中的文件上传操作,包括基本概念、常用库以及具体实现步骤。 1. **基本概念**: 文件上传通常...
对于小文件上传,你可以使用`put_object`函数。以下是一个示例代码: ```python import oss2 import os # 替换和 auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>') # 替换 bucket = oss2.Bucket...
总结来说,使用Python和Flask实现文件上传和下载功能并不复杂,但需要考虑到安全性,确保应用的稳定性和用户的数据安全。通过理解这些基本概念,你可以构建出更高级的文件管理系统,满足各种Web应用的需求。
通过以上知识点的整合和实现,我们可以创建一个功能完善的Python Flask文件服务器,满足文件上传、下载及安全认证的需求。在实际项目中,根据具体需求,可能还需要考虑性能优化、日志记录、数据库集成等其他方面。
本文实例讲述了Python实现基于HTTP文件传输的方法。分享给大家供大家参考。具体实现方法如下: 一、问题: 因为需要最近看了一下通过POST请求传输文件的内容 并且自己写了Server和Client实现了一个简单的机遇HTTP的...
在Python编程语言中,HTTP(超文本传输协议)是一个...总之,通过Python的requests库和多线程技术,我们可以高效、稳定地完成HTTP文件下载任务。无论是在开发小型脚本还是构建大型应用程序,这些基础知识都会非常有用。
同时,为了实现文件的上传和下载,可能还涉及到了网络编程,如使用`requests`库进行HTTP请求。 代码组织上,Python通常遵循模块化原则,每个功能可能对应一个单独的Python文件,如`file_operations.py`负责文件操作...
打开浏览器访问`http://127.0.0.1:8000/upload/`,选择一个文件上传,查看结果。 #### 总结 通过以上步骤,我们成功实现了使用Python后端接收前端回传的文件功能。这种方法不仅适用于简单的文件上传场景,还可以...
总结起来,`MultipartPostHandler.py`是Python中处理文件上传的重要工具,它通过构建符合HTTP规范的MIME多部分请求,使得文件上传变得简单易行。掌握其工作原理和使用方法,对于进行Python Web开发的开发者来说,...
3. 网络通信:学习使用requests库发送HTTP请求,或者使用smtplib和email库发送邮件,可能还有FTP客户端库如ftplib进行文件上传。 4. 文件路径处理:学习os.path模块,处理文件路径的拼接、解析和检查。 5. 错误处理...
文件上传是所有UI自动化测试都要面对的一个头疼问题,今天博主在这里给大家分享下自己处理文件上传的经验,希望能够帮助到广大被文件上传坑住的seleniumer。 首先,我们要区分出上传按钮的种类,大体上可以分为两种...
总结来说,Python Selenium提供了处理文件上传的强大功能,无论上传控件是标准的`<input type="file">`还是非标准的HTML元素。通过结合不同的技术,如AutoIt、PyWin32或SendKeys,我们可以有效地应对各种复杂的文件...
总结来说,MultipartPostHandler是Python中处理文件上传的一种实用工具,它利用`urllib3`库的功能来构造和发送多部分/表单数据的POST请求。理解和熟练使用这个工具,可以帮助开发者更高效地与服务器进行文件交互,...
`requests`库是常用的第三方库,它简化了HTTP请求的处理,支持文件上传和下载。 6. **数据压缩与解压缩**:Python的`gzip`和`bz2`库支持GZIP和BZIP2压缩格式,`zipfile`和`tarfile`库则处理ZIP和TAR档案。这些库...
一个可用于局域网上传下载的 Python 模块,使用介绍查看该文章:使用Python开启局域网传送数据(3):使用 simple_http_server 实现上传下载功能(https://blog.csdn.net/qq_45476428/article/details/129721441)。...
http-file-server 是用 python 实现的 HTTP 文件服务器,支持上传和下载文件。 运行 $ python file-server.py files 8001 其中第一个参数 files 是存放文件的路径,第二个参数 8001 是 HTTP 服务器端口。 接口 1. ...
对于更复杂的文件传输,如网页上的文件上传或下载,可以使用`http.client`或第三方库如`requests`。HTTP/HTTPS协议支持通过Web服务器进行文件传输,提供了身份验证、加密和错误处理等功能。 6. **SFTP(Secure ...
在Python编程中,文件上传是常见的操作,尤其在构建Web应用程序时。本篇文章将对比两种主要的文件上传方法,帮助开发者更好地理解它们的差异和适用场景。 第一种方法:基于HTML表单的传统文件上传 在传统的文件...
Python的`ftplib`库允许我们创建FTP客户端,实现登录远程服务器、上传、下载、列出目录内容等操作。例如,可以创建一个FTP连接,然后使用`RETR`命令读取文件,`STOR`命令写入文件。 3. **SFTP(Secure File ...
基于electron+vite+vue3和python flask的文件交互GUI.zip本项目是一个Electron项目,有一个文件上传接口,可以上传图片到Flask框架的后端,处理完(本项目的处理是去色加水印"myWatermark")后直接返回前端显示。...