使用httplib用python上传文件

2024-10-02 22:33:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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()

Tags: 代码image路径comrequestwwwconnpost
1条回答
网友
1楼 · 发布于 2024-10-02 22:33:47

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

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

另外,侧注:您可以直接将open("h1.jpg", "rb")传递到conn.request,而不必首先将其完全读入chunkconn.request接受类似于文件的对象,一次流一点文件会更有效:

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

相关问题 更多 >