2013-02-19 2 views
10

http-trafic에서 업로드를 추출해야합니다. 어떻게 그럴 수 있니? 먼저 request-method가 POST가됩니다. 둘째, Content-Type 헤더 필드가 있습니다. 공식 데이터를 추출하고 싶지는 않지만 메일 첨부 파일처럼 업로드합니다.내용을 업로드 할 때 HTTP 요청 내의 내용 유형 값은 무엇입니까?

+0

내가 알아 차 렸던 것 : Mime-Type은'multipart/form-data; '입니다. 그러나 이것 때문에 어떤 경험도 없었습니다. 나는이 질문이 왜 떨어졌는지 이해하지 못한다. – user1826831

답변

16

콘텐츠 유형은 per specificationmultipart/form-data입니다.

하나의 큰 요청에서 여러 하위 요청으로 시각화 할 수있는 특수한 콘텐츠 형식입니다. 각 하위 요청 (하나의 양식 데이터 요소)에는 고유 한 헤더 세트가 있습니다. 실제 데이터의 콘텐츠 유형이 여기에 있습니다.

는 여기가 (HTML 측면에서, <input name="textfield"><input type="file" name="filefield"> 사용) (1 개) 일반 필드와 1 개 개의 파일 필드처럼 보이게하는 방법을 예입니다 : 구문 분석에이 데이터를 추출로

Content-Type: multipart/form-data;boundary=SOME_BOUNDARY 

--SOME_BOUNDARY 
content-disposition: form-data;name="textfield" 
content-type: text/plain;charset=UTF-8 

value of textfield here 
--SOME_BOUNDARY 
content-disposition: form-data;name="filefield";filename="some.ext" 
content-type: application/octet-stream 

binary file content here 

--SOME_BOUNDARY-- 

, 거의 모든 프로그래밍 언어는 내장이/이에 대한 타사 API 당신이 사용하고있는 것에 대해 아무 말도하지 않았기 때문에, 목표 된 대답을하는 것은 불가능합니다. 예를 들어 Java의 경우에는 타사 라이브러리 Apache Commons FileUpload이거나 Servlet 3.0을 사용하는 경우 API 제공 request.getPart() 메소드입니다.

+0

저는 이것을 실현하기 위해 C#을 사용하고 있습니다. 바이트 배열에 정보를 저장했습니다. – user1826831

0

만약 당신이 단지 바이트 배열에서 데이터를 저장하려는 (의미없이 나는 이것이 올바른 방법입니다 말하고있다), 당신의 POST 본문 읽는 방법을 찾아야한다 : 데이터를 읽기 Reading POST body with bottle.py 을 한 후 새 파일을 만드는 것이 트릭을해야합니다.

관련 문제