웹 사이트에서 이미지를 다운로드 할 때 base64 인코딩이 필요하지 않습니다. GET /image.jpg
과 같은 HTTP 명령을 실행하고 Content-Type
이 image/jpg
인 HTTP 응답을받습니다.이 메시지의 Content-Length
은 이미지의 바이트 수이고 본문은 원시 이진 이미지 데이터 자체입니다. 데이터는 문자 세트를 사용하여 인코딩되지 않으며 base64와 같은 스키마를 사용하여 인코딩되지도 않습니다. 편안하고 자원을 작성Webkit JavaScript PUT 또는 POST 이미지를 순수 바이너리로 REST 스타일로 변환 할 수 있습니까?
는 HTTP GET
및 PUT
사이의 대칭을 기대하는 저를 훈련했다 그래서, 예를 들어, 나는 그것이 PUT
제시 될 때 GET
다음 JSON 데이터를 받아 수행 할 때 JSON 데이터를 제공하는 URL입니다. 어떤 경우에도 형식 인코딩이 관련되지 않습니다. 두 경우 모두 페이로드에 바이트 수를 제공하는 Content-Length
, 페이로드가 일부 문자 집합에서 JSON 인 것으로 선언하는 Content-Type
헤더가있는 경우 문자 데이터는 GET
또는 PUT
의 본문으로 단독으로 자리 매김되지 않습니다.
저는 사용자가 사진을 찍어 내 응용 프로그램을 사용하여 업로드 할 수있는 PhoneGap 응용 프로그램을 작성하고 있습니다. 나는 대칭적인 GET
과 PUT
을 지원하는 RESTful 인터페이스를 디자인 할 수 있기를 기대 했으므로 PUT
명령은 특별한 인코딩을 포함하지 않으며 문자 세트에 대한 아이디어도 포함하지 않고 단순히 Content-Type
을 image/jpg
으로 만든 다음 그 질량을 바이너리 JPG 데이터를 페이로드로 사용합니다. 분명히 이것은 폼 내부에서 이미지를 인코딩하는 것보다 대역폭을보다 효율적으로 사용하는 것입니다. curl
과 같은 도구를 사용하여 URL에 PUT
을 입력하면이 접근 방식을 사용할 수 있습니다.
그러나 PhoneGap WebKit JavaScript에서 깨끗한 RESTful PUT
을 수행하는 데 운이 없다! PhoneGap은 자바 스크립트로 로컬 file:
URL로 또는 이미지 데이터를 base64 인코딩 방식으로 인계하는 data:
URL로 이미지를 반환하려고합니다. 그러나 어느 경우에도 이미지를 순수한 바이너리 형식으로 변환하는 명확한 방법을 찾을 수 있습니까? (그렇다면 어떻게 사용합니까?) 그 요청을 축하하지 않고 PUT
이 발생합니다. 폼 또는 인코딩 cruft의 여분의 레이어는 HTTP 요청 페이로드로 와이어를 통해 웹 서버에 단순히 이미지를 전송합니다.
WebKit을 PUT
으로 유도하는 방법을 아는 사람은 원시 이미지를 본문으로 사용하고 있습니까? 모든 포인터를 주셔서 감사합니다 - 또는이 모든 잘못된 접근 오전 효과에 대한 유용한 답변도!
비슷한 질문입니다. 대답이 없으시다면 (다른 대답은 없다는 것을 의미하지는 않습니다) : http://stackoverflow.com/questions/3743047/uploading-a-binary-string-in-webkit- chrome-using-xhr-equivalent-to-firefoxs-se – Thilo