홈페이지상에서 파일 업로드 한 파일을 서버에 업로드할 경우 파일명이 깨지는 현상? 채택완료

Copy
$uploadUrl = "./text/";
    $fileName = $_FILES["file"]["name"];
    $uploadFile = uploadedFile($uploadUrl, $fileName);
    move_uploaded_file($_FILES["file"]["tmp_name"], $uploadFile);

    function uploadedFile($uploadUrl, $fileName) {
        return iconv("utf-8", "CP949", $uploadUrl.basename2($fileName));
    }

    function basename2($filename) {
        return preg_replace( '/^.+[\\\\\\/]/', '', $filename);
    }

 

이런식으로 홈페이지상에서 업로드한 파일을 text경로로 업로드하는 코드를 작성하였는데,

 

한글로된 파일을 업로드 할 시, 파일명이 깨지는 현상이 발생합니다 ㅠㅠ 

 

한글명으로된 파일이 깨지지 않도록 하는 방법이 있을까요?

답변 2개

채택된 답변
+20 포인트

보통은 원본파일의 이름을 db에 기록해두고

실제 서버내에 업로드되는 파일이름을 암호화해서 영문+숫자 등으로 만듭니다.

마찬가지 암호화되는 이름도 db에 기록되어있어야합니다.

그누보드의 파일업로드 로직을 참고하시면 될겁니다.

bbs/write_update.php

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

영문으로는 서버에 잘 올라가는데 한글만 깨져서 올라가는부분이 있어서요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

위와 같이해서 한글이 깨어진다면 iconv 부분 뻬고 헤보세요

서버에 따라 다르니까요

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고