월별 글 목록: 2014년 5월월

[Angular] $http로 파일 첨부해 서버로 전송하기

HTML에서 form을 통해 서버에 파일을 전송하려면 반드시 enctype에 대한 설정이 필요합니다.

Angular에서도 비슷하게, $http를 통해 post나 put으로 서버에 파일을 업로드 하려면, 추가적인 설정이 필요합니다. 그냥 전송하면 서버측에서 데이터를 올바르게 수신하질 못하거든요.
이 부분에 대해서 검색을 해도 하도 이것저것 의견들이 많고 실제로 안 되는 방법도 많습니다. (아마 구버전 기준으로 된 설명이 아닌가 싶은데요) 그래서 제가 성공한 방법으로 공유해봅니다… 저는 Angular 1.2.16 버전에서 작업했습니다.

var options = {};
options.headers = { "Content-Type": undefined };
options.transformRequest = angular.identity;
$http.post( 'URL', data, options ).success( ... );

일단 성공은 하고서도 의아한 부분인데…
2번 라인에 헤더 설정에서 콘텐트 타입을 multipart 로 해주는게 아니라 undefined로 해야 성공적으로 전송이 되었습니다.

뭔가 께름칙 하지만… 일단은 성공했습니다.