본문 바로가기
IT 인터넷

fakepath 이유와 해결 하는 방법

by 정보팔이 2024. 5. 18.

fakepath는 웹 브라우저가 보안상의 이유로 파일을 업로드할 때 전체 경로를 숨기기 위해 사용하는 것입니다. 이로 인해 "C:\fakepath\파일명"과 같은 형식으로 파일 경로가 표시되고, 애플리케이션 작동에 문제가 발생할 수 있습니다.

fakepath 문제를 해결하는 방법

  1. 인터넷 옵션 설정을 변경하는 방법
    • 인터넷 옵션 → 보안 → 사용자 지정 수준 → 파일을 서버에 업로드할 때 로컬 디렉터리 경로 포함 → 사용체크.
    • 이렇게 하면 파일 업로드 시 실제 파일 경로를 얻을 수 있습니다.
  2. JavaScript 또는 jQuery를 사용하는 방법
    • JavaScript에서 사용할 경우: 
    • document.getElementById("fileInput").onchange = function (e) { let fileName = e.target.value.split("\\").pop(); // }
    • jQuery에서 사용할 경우
        $("#fileInput").on("change", function () {
            let fileName = $(this).val().split("\\").pop();
            // 
        });
    • 이렇게 하면 경로 문제 없이 오직 파일명만 추출할 수 있으며, 이를 이용하여 원하는 작업을 진행하실 수 있습니다.
  3. FormData 객체를 사용하는 방법
    • 이 방법은 JavaScript를 사용하여 파일을 업로드하는 경우 유용합니다.
    • 아래는 이 방법을 설명하는 코드입니다.
        let fileInput = document.getElementById('fileInput');
        let formData = new FormData();
        for (let i = 0; i < fileInput.files.length; i++) {
            let file = fileInput.files[i];
            formData.append('file', file);
        }
        $.ajax({
            url: '/upload',
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            success: function (data) {
                console.log(data);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                console.log(textStatus, errorThrown);
            }
        });
    • FormData 객체를 사용하면 파일을 전송할 때 자동으로 파일 이름과 파일 크기를 포함한 헤더를 생성합니다. 이를 이용하면 fakepath 문제 없이 업로드 파일의 이름을 추출할 수 있습니다.

위의 방법들을 통해 fakepath 문제를 해결하실 수 있습니다. 하지만 실제 작업 환경에 적용하기 위해서는 맞춤형으로 수정해야 할 수도 있습니다.