서버파일을 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 포인트
3년 전
간단하게 @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개
3년 전
에러로그를 일단 푸세요 common.php에서 로그를 전부다 볼수있게 푸시고 (나중에 다시 원래대로 되돌리면되요)
그러고 에러내용을 확인후에 방법을 알려드릴수있어요
답변을 작성하려면 로그인이 필요합니다.