2014-02-16 3 views
0
for($i=0; $i<count($_POST['list']); $i++) { 
      echo $_POST['list'][$i]; 
      if(is_file($_POST['list'][$i])) echo "ok"; else echo "false"; 
      unlink($_POST['list'][$i]); 
     } 

내 서버에서 이미지 파일을 삭제하려고합니다.unlink()가 작동하지 않습니다.

echo $_POST['list'][$i] 출력 ../Profile/JPN012/test2.JPG (이미지 경로).

BUT is_file()unlink()이 작동하지 않습니다. 모든 디렉토리 및 이미지 file(0777)의 권한을 변경했지만 작동하지 않습니다.

(Linux OS 환경)

무엇이 문제입니까?

+0

확인 경우가 상대 경로가 올바른지 확인합니다. 당신은 절대 경로로 더 안전 할 것입니다. – Shomz

+0

어떤 종류의 오류가 표시됩니까? 괜찮습니까? –

+0

페이지에 아무것도 표시되지 않습니다 (그냥 흰색 화면). 나는 절대 경로로 시도했지만 여전히 작동하지 않습니다 ... – rayjang

답변

0

문제는 파일 경로 인수가 is_file이며 링크 해제 된 것 같습니다. is_file 호출 또는 링크 해제 전에 파일이있는 디렉토리를 변경할 수 있으면 더 쉬울 것입니다. 그 후에는 is_file ('test2.png')과 같은 파일 이름 만 사용할 수 있습니다.

<?php 
    $old = getcwd(); // Save the current directory 
    chdir($path_to_file); 
    unlink($filename); 
    chdir($old); // Restore the old working directory  
    ?> 

(출처 : http://au1.php.net/chdir) 서버에

+0

저는이 문제를 거의 해결한다고 생각하지만 장애물이 하나 있습니다. unlink ("test.jpg"); 작동하지만 unlink ($ _ POST [ 'list'] [$ i]); ($ _ POST [ 'list'] [$ i]는 파일 이름, 예를 들어 test.jpg입니다.) 하드 코딩은 일종의 작업이라는 것을 의미합니다. 다른 파일은 없습니다. – rayjang

+0

나는 당신이 필요하다고 생각합니다. $ _POST [ 'list'] [$ i] 출력을 확인하십시오. 파일 이름 만 표시합니까? 당신은 또한 공백을 돌보는 데 필요한 테스트의 시작과 끝 – joy

0

체크 경로, 그것은 가장 가능성이

$compositefilename = PATH_TO_YOUR_WEB_ROOT . "/composite/" . $compositeresult;