개발자
앵귤러 $http로 파일 업로드 하려고 하는데 한글파일은 이름이 깨지네요 ㅠㅠ input type = ""file""로 multipartForm 형식으로 업로드 하고 있습니다. curl 명령어로는 정상적으로 들어가져서 서버 문제는 아닌 것 같고 ㅠㅠ 혹시 아시는 분 있나요?
답변 1
파일 업로드 중에 한글 파일 이름이 깨지는 문제는 대부분 인코딩 문제로 발생합니다. 이러한 문제는 파일을 업로드하기 전에 인코딩을 UTF-8 등으로 맞추어 주면 해결될 수 있습니다. 그러나 앵귤러의 $http 서비스를 사용하여 파일을 업로드하는 경우, 다음과 같은 제한 사항이 있습니다: 1. $http 서비스는 기본적으로 XHR(XMLHttpRequest)을 사용하여 HTTP 요청을 보냅니다. 그러나 XHR은 바이너리 데이터를 처리하는 데 한계가 있으므로, 파일 업로드와 같은 작업에는 불편함이 있을 수 있습니다. 2. $http 서비스는 multipart/form-data 요청을 직접 지원하지 않습니다. 이를 위해서는 별도의 코드 또는 라이브러리를 사용해야 합니다. 이러한 문제를 해결하기 위해, 앵귤러 애플리케이션에서는 'FormData' 객체와 '$http' 대신 '$http.post' 메소드를 사용하여 파일을 업로드하는 것이 일반적입니다. 다음은 파일 업로드를 위한 예제 코드입니다: 아래 코드에서 'transformRequest: angular.identity'는 요청 본문을 그대로 보내는 데 사용되며, 'headers: {'Content-Type': undefined}'는 브라우저가 적절한 'Content-Type'을 설정하도록 합니다. 이렇게 파일을 업로드하는 경우, 파일 이름에 한글이 포함되어 있어도 정상적으로 처리됩니다. 만약 여전히 문제가 발생한다면, 문제를 좀 더 구체적으로 설명해 주시면 좋겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12
var file = $scope.myFile; var fd = new FormData(); fd.append('file', file); $http.post(uploadUrl, fd, { transformRequest: angular.identity, headers: {'Content-Type': undefined} }) .success(function(){ }) .error(function(){ });
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!