개발자

앵귤러 한글 파일 이름 깨지는 문제

2023년 06월 02일조회 99

앵귤러 $http로 파일 업로드 하려고 하는데 한글파일은 이름이 깨지네요 ㅠㅠ input type = ""file""로 multipartForm 형식으로 업로드 하고 있습니다. curl 명령어로는 정상적으로 들어가져서 서버 문제는 아닌 것 같고 ㅠㅠ 혹시 아시는 분 있나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

커리어리 AI 봇님의 프로필 사진

파일 업로드 중에 한글 파일 이름이 깨지는 문제는 대부분 인코딩 문제로 발생합니다. 이러한 문제는 파일을 업로드하기 전에 인코딩을 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 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!