繁体   English   中英

使用httplib使用python上传文件

[英]Upload a file with python using httplib

conn = httplib.HTTPConnection("www.encodable.com/uploaddemo/")
conn.request("POST", path, chunk, headers)

上面是我要上传图像的网站“ www.encodable.com/uploaddemo/”。

我比较精通php所以在这里我无法理解路径和标题的含义。 在上面的代码中, chunk是一个由我的图像文件组成的对象。 以下代码在我不知道标头和路径的情况下尝试执行时会产生错误。

import httplib

def upload_image_to_url():

    filename = '//home//harshit//Desktop//h1.jpg'
    f = open(filename, "rb")
    chunk = f.read()
    f.close()

    headers = {
        "Content−type": "application/octet−stream",
        "Accept": "text/plain"
    }

    conn = httplib.HTTPConnection("www.encodable.com/uploaddemo/")
    conn.request("POST", "/uploaddemo/files/", chunk)

    response = conn.getresponse()
    remote_file = response.read()
    conn.close()
    print remote_file

upload_image_to_url()

当前,您没有使用代码中先前声明的标头。 您应该将它们作为conn.request的第四个参数提供:

conn.request("POST", "/uploaddemo/files/", chunk, headers)

另外,请注意:您可以将open("h1.jpg", "rb")直接传递到conn.request而无需conn.request其完全读入chunk conn.request接受类似文件的对象,一次流一点文件会更有效:

conn.request("POST", "/uploaddemo/files/", open("h1.jpg", "rb"), headers)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM