Http POST 데이터가 있는 두 가지 방법이 있다. multipart / '와' '응용 프로그램 / x 로렌코디드 korea. 양식 양식 데이터'. Multipart / 양식 데이터 경우 대부분의 브라우저에서 파일 업로드 할 수 있다는 사실을 알고 있다 '만' 을 사용하고 있다. 유형 중 하나를 사용할 때 추가 안내지침 유지됩니까 인코딩입니다 API 를 컨텍스트로 (no 있지만브라우저에 관련)? 예를 들어 기반으로 할 수 있습니다.
기본적으로는 늑대굴에서 공식적인 웹에서 안내지침 사용과 관련된 다양한 컨텐츠 유형 부진했다.
요약. 이진 데이터 (또는 상당히 크기 (payload) 경우 (영숫자가 아닌) ',' multipart / 양식 데이터 송신합니다 사용합니다. 그렇지 않으면 '응용 프로그램 / x 로렌코디드 korea. 양식 사용하여'.
Mime 유형은 '2' 는 HTTP POST 요청하는 컨텐츠 유형에 대한 너회가 언급하십시오 헤더도 사용자 에이전트 (브라우저) 을 지원해야 한다. 두 유형의 요청률 목적이 바뀌엇어요 이름 / 값 쌍의 서버로 전송할 수 있다. 전송되는 데이터의 양을 및 유형에 따라 효율적인 방법 중 하나로, 다른 것보다 더욱 거세질 전망이다. 어떤 조치를 취할 수 있는 이유는 무엇인지, 각 닫히지만 바라 보아야 합니다.
본문에 대한 ',' 응용 프로그램 / x 로렌코디드 korea. 양식 http 서버 본질적으로 보낸 메시지 - one giant 쿼리 문자열 이름 / 값 쌍은 구분된 앰퍼샌드 (& ',') 는 기호 ('=') 에서 이름, 의해 값이 떨어져 있다. 예를 들어 다시그것들을 be:& nbsp;;
'미바리이블론 ValueOne& 미바리아블레보 바루 디보' =, =
[사양명세] 에 따르면 (http://www.w3.org/TR/html401/interact/forms.html):
\ '%HH& > 영숫자가 아닌, [스케줄됨 and] # 39, 문자는 ASCII 코드로 자리, 백분율 기호 2 진수 나타내는 문자
즉, 각 영숫자가 아닌 바이트입니다 it& 존재하는 한, s # 39 의 값을 나타내는 데 3 일이 시행하십시오 바이트입니다 거잖나. 대규모 바이너리 파일 "페이로드 배로 매우 비효율적으로 될 것입니다.
여기서 ',' s # 39 that& multipart / 양식 데이터 제공됩니다. 이 방법으로 전달하는 이름 / 값 쌍에 표현되는 각 페어당 " part"; mime 에서 메시지 (설명자 다른 답을 있다). 부품은 특정 문자열을 구분된 경계 (사탄들 구체적으로 어떤 " value", 이 경계를 도왔으매 구체화하십시오 발생하지 않습니다. 페이로드). 각 부품 고유의 MIME 헤더를 콘텐트 유형 'like' 세트 ',' 컨텐츠 폐기입니다 줄 수 있는, 특히 " name.", 각 부분이 있다. 이 값은 각 각 부분을 블렌드합니다 이름 / 값 페어당 페이로드 는 MIME 메시지가. 우리에게 더 많은 가치를 표현할 때 MIME 사양명세 옵션을 통해 선택할 수 있습니다 - 보다 효율적인 이진 데이터 저장하라는 대역폭까지 인코딩입니다 페이로드 (예를 들어, 기본 64, 심지어 기초형상 바이너리).
Multipart / 양식 데이터 사용하지 않는 이유는 '' all the time? 단기간 문숫자 값 (가장 좋아하는 웹 양식) 을 추가 부담을 크게 줄일 수 있는 모든 MIME 헤더를 통해 보다 효율적인 바이너리 인코딩입니다 절감만으로도 보다 중요한 것 같습니다.
그러나 이는 3 년 늦었음요, 그러니까말이야 Matt& # 39, s (수락됨), 결국 곤경에 빠지는 불완전한 답이 있습니다. 여기에서 핵심은 바로 '경계' 를 사용할 경우 multipart / 양식 데이터 합니다 나타나지 않고 있는 파일 데이터 서버는 결국 수신합니다.
응용 프로그램 / x 로렌코디드 korea. 양식 '없기 때문에 문제가 아니다 "에 대한 경계. '항상' 의 한 것은 간단한 바이너리 데이터를 처리할 수 있는 x 로렌코디드 korea. 양식 또한, 임의의 3 '에 의해 선반가공 바이트입니다 7bit' 바이트입니다. 하지만 비효율적임 작동하잖아 (및 참고로 주석문입니다 파일 이진 데이터를 보낼 수 없는 것은 물론 대한 잘못된. 방금 또 다른 주요 정보기술 (it) 을 보내 / 값 페어당).
Multipart / 양식 데이터 문제가 있는 것은 '안' 경계 분리자를 파일 데이터 (http://otl. [rfc 2388] [1]; 섹션 5.2 포함되어 있다는 것이 아니라 이 문제를 제대로 할 말이 없다는 MIME 형식 허용하지 않는 집계).
그래서, 첫눈에 반한 '에서' 는 모든 , multipart / 양식 데이터 가치가 전혀 없는 파일 업로드, 이진, 그렇지 않을 경우. # 39, 경계, 그러면 고르십시오 don& 경우 t 가 문제가 제대로 하고 있는지, 결국 you& # 39 - 서버는 일반 텍스트 또는 보내는 기초형상 이진 파일 잘립니다 범위 내에서 발견하리니 엉뚱한 곳으로, 선생님, 또는 게시물로의 실패합니다.
중요한 것은 그러한 선택할 수 있는 문자 인코딩 및 경계 경계 인코딩되지 출력입니다 선택한 나타날 수 없습니다. 하나의 단순한 솔루션) 을 사용하여 'base64' (do 사용하는 것은 기초형상 바이너리). Base64 의 3, 4 개 분야로 7 비트 문자 집합은 임의의 바이트입니다 인코딩됩니다 출력입니다 '있는 자 [A-Za-z0-9+/ =]' (즉, 영숫자, & # 39, & # 39, / # 39 +& # 39;;; = 또는 & # 39, & # 39;). '=' 는 특별한 경우로 나타날 수 있으며, 디렉토리에만 인코딩되지 출력입니다 끝에 한 '=' 또는 '=' 연산뿐. 이제 7 비트 ASCII 문자열 경계를 고르십시오 base64 로 표시될 수 없는 '' 출력입니다. 이 테스트 - 매든 양식을 볼 수 있는 다양한 네트워크없음 페일오버합니다 docs, 예를 들어, blob" " 사용합니다. 경계로 이진 데이터를 보낼 때 안 좋다. 그러나 " 물방울 같은 일이 ";!! 결코 나타나는 'base64' 출력입니다.
[1]: https://tools.ietf.org/html/rfc2388 # section-5.2
Restful 관련 API 를 통해 가장 많이 사용되는 HTTP 컨텐츠 유형 왔는지 application / xml 및 응용 프로그램 / json 연락을 취하고 있다.
이진 데이터를 표현하기 위해 꼭 이래야겠어요 시도하시겠습니까 İç 에셋을 / 리소스에는 있다. 하지만 다른 물건을 호출하십시오 디커플링 더 추가됩니다. 예 이미지:
< pre>; < 게시물로의 /images code>; 콘텐트 유형: multipart/mixed. 경계 = " xxxx"; . multipart 데이터
201 생성되는가 위치: http://imageserver.org/ ./foo.jpg< /code>; < /pre>;
단순히 인라인 바이너리 리소스를 링크로 리소스에는 훗날 수 있습니다. < pre>; lt;;; gt main-resource& & code> <; . &, lt, 링크, http://imageserver.org/, gt, href = " /& ./foo.jpg". lt;;; gt, < & /main-resource& /code>; < /pre>;
[1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html # sec14.17
내가 얼마나 마누엘 공감하고 있다 "고 전했다. 그의 발언은 사실, 이 url () 는 다음과 같은 뜻이 있다.
http://www.w3.org/TR/html401/interact/forms.html # h-17.13.4
. 이는 다음과 같은 뜻이 있다.
>. 컨텐츠 유형 >. " application/x-www-form-urlencoded"; 는 >. 대형 비효율적이었습니다 송신용입니다 >. 이진 데이터 또는 양의 텍스트 >. 비 ascii 문자를 포함하는. 이 >. 컨텐츠 유형 " multipart/form-data"; >. 양식 제출을 위한 사용되어야 합니다. >. 파일이 포함된 데이터를 ascii 가 아닌, >. 이진 데이터 및.
그러나 it for me down to 도구 / 프레임워크 지원 나올 것으로 보인다.
나타날 경우 사용자의 they& 명확하게 알고, 어떻게 활용할 수 있도록 도와주는 # 39, ll make apiu 관심용 결정할 수 있습니다. 파일 업로드를 할 경우, ll, 사용자의 하드 단축시킵니다 apiu 어졌다면 they& # 39 의 떠나다, ll you& # 39 의 시간을 들여서 이를 지원하는.
이 약간만이라도 지원할 수 있는 보조 도구를 쓰기 위해 얼마나 쉽게 수용할 수 있는 메커니즘을 통해 한 업로드하십시오 단축시킵니다 너회의 API 와 다른.
나는 프로젝트 작업을 수행할 수 있는 서버의 업로드 이미지 때문에 인쇄소 대한 몇 가지 문제가 없었다 "며 'html5' 에서 나온 캔바스를 요소. I was 어려움을 겪고 있는 한 시간 이상, 난 내 서버에 저장할 수 있는 이미지를 제대로 이해했소 않았다.
내가 한 번 설정합니다. '내 jQuery ajax 호출이 콘텐티페' 옵션을 'everything' 응용 프로그램 / x 로렌코디드 korea. 양식 올바른 길로 갔다 와 base64 인코딩되지, 성공적으로 이미지가 표시됨과 저장된 데이터를 제대로 것으로 받아들여졌다.
누군가에게 도움이 되는 것 같습니다!