업로드 폴더 지워지게좀 해주세요 > 그누3질답

그누3질답

업로드 폴더 지워지게좀 해주세요 정보

그누보드 업로드 폴더 지워지게좀 해주세요

본문

윈도우 환경에서...
업로드 게시판 작업중입니다.
업로드 폴더 생성시 mkdir() 함수써서 만들고, 권한은 0777로 주었습니다.
게시판 삭제시 업로드 폴더까지 삭제하려 합니다.
그런데 다음과 같은 코드로는 업로드 폴더안에 있는 파일은 삭제가 되는데, 폴더는 삭제가
안됩니다. 왜그런지요?

$code // 게시판 이름을 받아오는 변수

$todelete="..\board\up_file\\".$code; //지우고자 하는 디렉토리

$dh=opendir($todelete);
while($fName=readdir($dh)) {
  @unlink("$todelete/$fName"); //파일을 모조리 지운다..
}
@rmdir($todelete); //디렉토리를 지운다


위코드로 작업해서 돌리면 안에 파일은 지워집니다 그러나 폴더는 안지워짐.
에러부분은 rmdir() 부분에서
rmdir(..\board\up_file\ccccc): Permission denied in c:\apache\htdocs\sam\admin\admin_del_board.php on line 31  권한이 없다고 나옵니다.


아래 구문을 rmdir() 부분은 주석처리하고 아래 구문을 대신 넣으믄 그래도 파일은 지워지나
폴더는 안지워짐.
exec('rmdir ..\board\up_file\\'.$code);

그리고 파일 지우는 코드 주석처리하고 디렉토리 지우는 코드만 실행되게 하면은 아래 코드로
폴더 지워짐 (단, 파일이 없을때만);;
exec('rmdir ..\board\up_file\\'.$code);


폴더 지워지게좀 해주세요^^

댓글 전체

안녕하세요.
저도 마찬가지로, 호스팅서버 회사가 망하여 겨우 ftp만 접속이 가능한데, sub folder가 엄청나게 많아서 죽은 폴더들을 방치해 놓고 있습니다. 하여 다방면으로 퍼미션 변경이나 삭제를 시도했지만 안되는데, 성공하신 분은 좀 갈쳐 주세요.
<?php

//if (unlink("backup/file/xxxx.tar.gz")){
//if (unlink("home==")){
//if (unlink('home==/admin/case')) {
//if (rmdir("home==")) {
//if (exec('rmdir("home==")')) {
if (chmod('home==',0777)) {

//echo "the folder/file deleted!";
echo "Permission changed!";
}

?>
도움주셔서 감사합니다.
저코드로 하도 안되길래, 그누보드에 있는 폴더 삭제 함수 rmrf() 를 썼는데, 한 키에 되어버리더군요.
조금 다른점은 퍼미션 문제였던거 같습니다.
감사합니다
안녕하세요.

아마도 Nobody 권한이라 삭제가 안되는것 같습니다.

폴더 생성할때 다음과 같이 하셨다면 삭제되어야 정상인데요.

8진수로 퍼미션을 변경할 경우에는 0을 생략하면 안된다네요.

@mkdir($todelete, 0777);

만약 이미 만들어진 폴더라면 다음과 같이 퍼미션을 변경할 수 있겠죠?

@chmod($todelete, 0777);

퍼미션 설정이 완료되어 삭제를 원하신다면 처음에 소개한 로직으로 돌리면 되겠네요.

성공하시기 바랍니다.^^
전체 9,564
그누3질답 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT