python_模拟表单上传文件

本文介绍了如何在BAE环境下利用urllib2库模拟浏览器动作,实现将本地文件上传至远程服务器的过程。通过自定义请求头和数据结构,成功绕过了模块安装和curl/socet的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个有点难找,我的需求是这样的,在bae上我需要模拟一个浏览器的动作把bae上的文件传到另一个服务器上

网上都是安装其他模块,或者curl实现

但是bae是无法安装其他模块的,curl和socket也被禁用了,

这里我用urllib2实现了

'''
Created on Sep 7, 2013

@author: blacklaw
'''
import urllib
import urllib2
import mimetools
def request_add_file(request, filename, data):
        boundry = mimetools.choose_boundary()
        body = '''
--%s
Content-Disposition: file; name="file"; filename="%s"
Content-Type: text/plain
    
%s
--%s--
''' % (boundry, filename, data, boundry)
        request.add_header('Content-type', 'multipart/form-data; boundary=%s' % boundry)
        request.add_header('Content-length', len(body))
        request.add_data(body)
        return request
if __name__ == '__main__':
    url = 'http://xxx.xxx'
    request = urllib2.Request(url)
    f = open('file.txt', 'rb')
    filedata = f.read()
    f.close()
    request_add_file(request, 'file.txt', filedata)
    res = urllib2.urlopen(request).read()
    print res


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值