달짱달짱

[RestAPI/C#] Multipart/form-data POST 방식 수신 데이터 파싱 본문

RestAPI

[RestAPI/C#] Multipart/form-data POST 방식 수신 데이터 파싱

달콩쨩 2022. 5. 4. 17:59

POST 방식으로 보내진 Multipart/form-data Body를 가져오는 방법은 이전 발행 글에 있다. 

2022.05.04 - [RestAPI] - [RestAPI/C#] Multipart/form-data POST 방식 수신

 

[RestAPI/C#] Multipart/form-data POST 방식 수신

HTTPListener를 통해 POST 로 전송되는 Multiform-data Body 수신 및 얻어오기 * Method : POST * Content Type : Multipart/form-data 1. 참조 추가 using System.Net; using System.Net.Http; 2. HttpListener..

dalkongzzang.tistory.com

 

위와 같은 방식으로 가져온 데이터를 값 별로 파싱하기 (HttpMultipartParser 이용) 

 

1. C# 프로젝트(.Net Framework 4.7.2) 생성

 

2. 솔루션 탐색기 > 프로젝트 > 우클릭 > Nuget 패키지 관리

3. 찾아보기 탭 > 'HttpMultipartParser' 검색 > (만약 결과가 안나온다면 우측 상단에 패키지 소스가 모두로 되어있는지 확인) > 설치 

4. HttpMultipartParser 참조

using HttpMultipartParser;

5. parser 선언

var parser = MultipartFormDataParser.Parse(stream); //stream: Request Body (stream형식)

6. parser를 이용해 값 가져오기 

var name_value = parser.GetParameterValue("Name");

7. parser를 이용해 ImageFile 가져오기 

//Image Parse
int nCnt = parser.Files.Count;			//파싱할 파일의 개수 
byte[] arrByte;

if (nCnt > 0)					//파싱할 파일의 개수가 0보다 크면, 
{
	var file = parser.Files.First();
	string filename = file.FileName;
	Stream data = file.Data;		//stream 형식으로 읽기 
	arrByte = streamToByteArray(data);	//Byte Array로 변환
}

** 참고 **

Stream 을 ByteArray로 변환하는 함수 

public static byte[] streamToByteArray(Stream input)
{
	MemoryStream ms = new MemoryStream();
	input.CopyTo(ms);
	return ms.ToArray();
}

 

'RestAPI' 카테고리의 다른 글

[RestAPI/C#] Multipart/form-data POST 방식 수신  (0) 2022.05.04