2011-09-10 7 views
1

이 작업은 PHP, txt 및 이미지를 삭제하는 데 유용하지만 최근 이미지를 사용하여 시작하여 휴지통 폴더에 임시 이미지를 삽입합니다.PHP - 파일 확장명이없는 파일의 연결을 해제하는 방법

* 예를 들어 이름 2616cf442b6cd3e1313161551fad6078 *

파일 형식 : 텍스트/X-일반적인

권한 : 0644

이 행운으로 .txt로하기 위해 이름을 바꾸는 시도

$cleantrash =(DOCROOT."/woobe/myfiles/trash/"); 
$cleantrash = opendir($cleantrash); 

while (($filex_clean = readdir($cleantrash)) !== false) { 
if($filex_clean != "." && $filex_clean != ".." && $filex_clean != "index.php") { 


     echo "<b>Cleaing Trash...</b> $filex_clean<br>"; 
     unlink($filex_clean); 
     } 
} 
closedir($cleantrash); 

* EDIT *

$newname = basename($filename, ".bmp").".jpg"; 
rename($filename, $newname); 

및 파일이 삭제되었습니다. 링크 해제는 사용되지 않습니까? 그래서 그들은 어디로 갔습니까?

+0

: 내 생각 엔 당신이 $의 cleantrash 경로를 저장할 필요가 대신했던 opendir()에서 리소스로 덮어 다음과 같은 일을한다는 것입니까? 또한 PHP가 실행되는 것과 동일한 사용자가 소유하고 있습니까? –

+0

파일 권한은 0644이고 예는 – MHowey

+0

입니다. 왜 파일을 삭제하기 만하면 이름을 바꾸겠습니까? unlink는 어떤 파일 이름에서도 작동하지만 경로를 사용해야하거나 현재 작업 디렉토리를 파일과 같은 디렉토리로 설정해야합니다. – gview

답변

2

readdir() 함수는 경로없이 파일 이름을 반환합니다 (전달하는 리소스 디렉토리 매개 변수에 상대적 임).

unlink() 함수는 전체 파일 경로를 필요로합니다. 해당 파일에 대한 권한은 무엇

unlink($cleantrash . $filex_clean); 
+0

은 확장자가없는 파일을 제외한 모든 것을 삭제하므로 경로 문제는 아닙니다. – MHowey

관련 문제