2014-03-26 4 views
0

파이썬 요청 모듈을 사용하고 있지만 이미지를 업로드하려고 시도했지만 성공했지만 이미지를 열거 나 읽을 때 오류가 발생합니다. 내가 base64로 같은 이미지, 설정 내용 유형의 헤더 (이미지/PNG 이미지/JPEG 등) 등 ... 어쨌든동등한 python 요청 CURL 요청 업로드 이미지 호출

를 인코딩, 나는 다음과 같은 사용 CURL는 그것은 작동합니까 :

curl -u [email protected]:test -H 'Content-Type: image/jpeg' --data-binary @test.jpeg -X POST 'https://test.test.com/api/upload.json?filename=test.jpeg' 

요청 모듈과 함께 파이썬 (헤더 등)에 해당하는 것은 무엇입니까? 당신의 curl 명령을 재현하는

답변

1

, 당신은 base64로 이미지를 인코딩 할 필요가 없습니다 : 어떻게 파일에 대한

import requests 

r = requests.post('https://example.com/api/upload.json?filename=test.jpeg', 
        data=open('test.jpeg', 'rb'), 
        headers={'Content-Type': 'image/jpeg'}, 
        auth=('[email protected]', 'test')) # username, password 
+0

이 작동했습니다. 대신 파일 = { 'file.png': etc ...}을 data = etc .. 대신 사용했기 때문에 변경되었습니다. 고맙습니다. –

+0

... 그리고 나는 urrlib2로 바꿀 예정이었습니다. urrlib2는 작동하는 구현을 가지고 있습니다. –

1
headers = {'Content-Type' : 'image/jpeg'} 
params = {'filename' : 'test.jpg'} 
r = requests.post("https://test.test.com/api/upload.json", 
        auth=('user','pw'), headers=headers, params=params) 
+1

: 그대로 --data-binary @test.jpeg 컬 옵션 test.jpeg 파일을 전송? –

+0

files = { 'test.png': base64.b64encode (open ('test.png', 'r'). read()) –

+0

저는 이미 이런 종류의 요청을 해왔습니다. 답변을 주셔서 감사합니다. 파일과 함께 포함시켜야합니다. 작동하지만 업로드 한 후 이미지를 열거 나 읽지 못합니다. 대신 CURL –