2014-02-16 37 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]); 
     } 

我正試圖刪除服務器中的圖像文件。取消鏈接()不起作用

echo $_POST['list'][$i]輸出../Profile/JPN012/test2.JPG(圖像路線)。

但是is_file()unlink()不起作用。 雖然我更改了所有目錄和圖像file(0777)的權限,但它不起作用。

(Linux操作系統環境)

有什麼問題?

+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

我想我幾乎解決了這個問題,但我遇到了一個障礙。取消關聯( 「test.jpg放在」);正在工作但取消關聯($ _ POST ['list'] [$ i]);是不工作的($ _ POST ['list'] [$ i]是文件的名稱,例如test.jpg),這意味着硬編碼雖然有點工作,但另一個不是...... – rayjang

+0

我認爲你需要檢查$ _POST ['list'] [$ i]輸出。它只顯示文件名嗎?您還需要考慮空白開始和結束測試 – joy

0

支票路徑,它最有可能是

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