강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

kha2464님의 프로필 이미지
kha2464

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

multipart file array 표현하는 방식의 표준이 있나요?

작성

·

303

0

김영한님 안녕하세요?

딱 필요했던 정보를 재밌고 알차게 정리해주셔서 HTTP 강의 즐겁게 보고 있습니다 :)

제가 영한님의 HTTP 강의를 들어야겠다고 다짐하게 된 에피소드가 있는데요,

네트워크 통신 관련하여 백그라운드가 얕아서 인터넷에 검색해봐도 원하는 결과를 찾지 못했습니다.

관련하여 조언이나 힌트를 얻고자 질문 드립니다.

글 읽어주셔서 미리 감사드리고, 답변 주신다면 도움이 많이 될 것 같습니다!

---

Flutter 클라이언트에서 네트워크 통신을 위해 `DIO`라는 라이브러리를 사용하고 있는데, 해당 라이브러리에서 multipart 필드가 array면 필드명(ex:files)에 '[]'를 추가하여(ex:files[]) 하여 서버로 통신하고 있습니다. 해당 라이브러리의 설명으로는 대부분의 백엔드 서버에서 필드명에 []를 붙이지 않으면 multipart file array를 인식하지 못하기 때문에 편의(?)를 위해 이런 내부 동작이 있는 것 같습니다.  https://pub.dev/packages/dio#multiple-files-upload

// Flutter 클라이언트 샘플 코드
FormData.fromMap({ "files": [ MultipartFile.fromFileSync("./example/upload.txt", filename: "upload.txt"), MultipartFile.fromFileSync("./example/upload.txt", filename: "upload.txt"), ] });

클라이언트에서 files라고 필드를 정의해도, 서버에서 확인해보면 files[]라고 보내고 있습니다 :)

사실 네트워크 통신 시 필드명에 배열을 표현하는 방식은 언어마다 다양한 것 같은데, 클라이언트에서 사용하는 네트워크 라이브러리에서 배열 표현에 `[]`를 붙이는 걸 보면 제법(?) 강력한 표준인 게 아닐까 추측하고 있습니다.

서버에서는 'files'로 보내도 multipart file 배열을 인식할 수 있지만, 그래도 multipart 필드명에 []를 붙여두었습니다. files => files[]

혹시 관련된 표준 내용을 확인하려면 어디서 알아봐야할까요?

이게 일반적인 표준이긴 한가요?

---

제가 아직 챕터 2까지 밖에 안들어서 강의 내용에 있는데도 성급하게 질문 드린것이라면 죄송합니다^^;

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. kha2464님

저도 이 부분은 잘 모르겠습니다.

혹시 아시는 분 있으면 답변 부탁드립니다.

감사합니다.

kha2464님의 프로필 이미지
kha2464

작성한 질문수

질문하기