zoukankan      html  css  js  c++  java
  • python 上传文件

    上周产品给我提了个需求,大体是做一个后台系统,管理游戏比赛落地页的数据更新,难点在于需要给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 = '
    '
    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)
  • 相关阅读:
    [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)
    会写网页 就会写手机APP #2-- 范例修正 , Hybrid Mobile Apps for ASP.NET Developers (Apache Cordova)
    vue事件处理
    vue渲染
    vue数组和对象方法
    vue样式绑定
    vue模板语法与绑定指令
    墨刀的使用
    ajax基础一
    解构赋值中圆括号问题及解构赋值的用途
  • 原文地址:https://www.cnblogs.com/ruiqingliang/p/7718747.html
Copyright © 2011-2022 走看看