Sube un archivo con python usando httplib

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

Arriba está el sitio “www.encodable.com/uploaddemo/” donde quiero subir una imagen.

Estoy mejor versado en php así que no puedo entender el significado de ruta y encabezados aquí. En el código anterior, chunk es un objeto que consiste en mi archivo de imagen. El siguiente código produce un error cuando intentaba implementarlo sin ningún conocimiento de los encabezados y la ruta.

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

Actualmente, no está utilizando los encabezados que ha declarado anteriormente en el código. Debe proporcionarlos como el cuarto argumento de conn.request :

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

Además, nota al margen: puedes pasar open("h1.jpg", "rb") directamente a conn.request sin leerlo completamente en el chunk primero. conn.request acepta objetos tipo archivo y será más eficiente transmitir el archivo poco a poco:

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