채택완료

unlink 파일삭제문의

서버파일을 unlink를 통해 삭제하려고 합니다.

www/data/file 폴더 밑에 파일이 있는것은 echo를 통해 확인했습니다.

 

unlink를 코드를 실행하면 500에러가 뜨며, unlink 코드를 가리면 제대로 실행됩니다.

(단, 서버에 파일삭제가 안됨)

 

퍼미션 문제인것 같아 G5_FILE_PERMISSION 대신 0755, 0777 입력해보았는데 동일한 500오류가 발생합니다.

 

어떤 문제일까요?

 

Copy
while($row = sql_fetch_array($result)){

        $base_directory = G5_DATA_PATH."/file/";

        $destfile = $base_directory.$row['file_name'];

        $destfile = trim($destfile);

 

        echo "DEST => ".$destfile;

 

        // echo G5_FILE_PERMISSION;

 

        @chmod($destfile, 0777);

 

        if(@unlink($destfile)){

            echo "Success.";

        }else{

            echo "Fail."

        }

    }

답변 3개 / 댓글 1개

채택된 답변
+20 포인트

간단하게 @unlink() 함수가 조건문에 안먹히는거 아닌가요?

즉 @를 사용해서 그럴지도 모르겠군요.

Copy
<?php

$file = "test.txt";
if (unlink($file)) {
    echo ("삭제완료 $file");
} else {
    echo ("삭제실패 $file");
}

 

// $res 변수에 반환여부를 넣는방식으로도 해보세요.

$file = "test.txt";
$res = @unlink($file);
if ($res == true) {
    echo ("삭제완료 $file");
} else {
    echo ("삭제실패 $file");
}


?>

답변에 대한 댓글 1개

답변주신것처럼 해보았는데 안되네요 ㅠㅠ

개발을 하려면

https://sir.kr/qa/?wr_id=405998

에러 메시지 보는 것부터 설정해 놓으면 좋습니다.

에러로그를 일단 푸세요 common.php에서 로그를 전부다 볼수있게 푸시고 (나중에 다시 원래대로 되돌리면되요)

그러고 에러내용을 확인후에 방법을 알려드릴수있어요

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