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

Above is the site "www.encodable.com/uploaddemo/" where I want to upload an image.

I am better versed in php so I am unable to understand the meaning of path and headers here. In the code above, chunk is an object consisting of my image file. The following code produces an error as I was trying to implement without any knowledge of headers and path.

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

1 Answer 1

6

Currently, you aren't using the headers you've declared earlier in the code. You should provide them as the fourth argument to conn.request:

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

Also, side note: you can pass open("h1.jpg", "rb") directly into conn.request without reading it fully into chunk first. conn.request accepts file-like objects and it will be more efficient to stream the file a little at a time:

conn.request("POST", "/uploaddemo/files/", open("h1.jpg", "rb"), headers)
Sign up to request clarification or add additional context in comments.

2 Comments

That is what I am trying to ask I don't know how to put headers
And I'm telling you that you properly made the headers dictionary, but you have to pass it to your conn.request function in order for it to do anything.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.