码迷,mamicode.com
首页 > 编程语言 > 详细

python 上传文件

时间:2017-10-23 21:49:32      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:[]   cep   后台   data   multi   val   field   ipa   png   

上周产品给我提了个需求,大体是做一个后台系统,管理游戏比赛落地页的数据更新,难点在于需要给CDN上传文件。现在把经验记录下来,下次有类似的需求能提高开发效率。

我使用的是网宿CDN,没有用网宿的SDK,直接python封装表单上传文件。

使用post 上传文件需要封装HTTP 消息头:

Content-Type:multipart/form-data; boundary=<boundary>  # boundary 是分隔符,表示使用<boundary>作为body体分割符
Accept: */*
Content-Length: XXXX

--<boundary>    #开始必须使用“--分隔符”作为body体的第一行,需要注意--一定不能丢
Content-Disposition: form-data; name="XXX"
/r/n         # 注意 name跟value之间一定要空一行
XXX_Value      # 表单XXX对应的Value值
Content-Dispositon: form-data; name=‘file‘; filename=‘abc.png‘
Content-Type: image/png
/r/n
“png的二进制数据”
--<boundary>-- #body体结束标记
/r/n



LIMIT = ----------lImIt_of_THE_fIle_eW_$
CRLF = \r\n
L = []
for (key, value) in fields:
L.append(-- + LIMIT)
L.append(Content-Disposition: form-data; name="%s" % key)
L.append(‘‘)
L.append(value)
for (key, filename, value) in files:
L.append(-- + LIMIT)
L.append(Content-Disposition: form-data; name="%s"; filename="%s" % (key, filename))
L.append(Content-Type: %s % get_content_type(filename))
L.append(‘‘)
L.append(value)
L.append(-- + LIMIT + --)
L.append(‘‘)
body = CRLF.join(L)

 

python 上传文件

标签:[]   cep   后台   data   multi   val   field   ipa   png   

原文地址:http://www.cnblogs.com/ruiqingliang/p/7718747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!