2013-09-25 23 views
3

我使用與其他人相同的語法,但...我無法讓它工作。PHP解除鏈接錯誤 - 路徑錯誤

我已經嘗試了很多選項來從目錄中取消鏈接。

摘要: delete.php(執行操作的文件)位於主文件夾中。 要刪除的文件(圖像)位於子目錄「upload」下。

$file = $name . '.' . $ext; 

$tmpfile = 'upload/'. $file; 
unlink($tmpfile); 

也比這一個。

if (!unlink("upload/$file")) { 
    echo "Error deleting ... $file ... from directory"; 
} 
else { 
    echo "Deleted $file"; 
} 

還有更多。 以下是錯誤日誌

的unlink(上傳/ Glauber_3232_MAGNOLIA_ST__016.jpg)[function.unlink]:在/home2/braaasil/public_html/openhouse/delete.php線沒有這樣的文件或目錄30

因此,我無法退出主目錄(其中delete.php),並轉到我的圖像所在的子目錄「upload」。 任何建議將不勝感激。

編輯

public_html 

    openhouse (sub domain) 

     delete.php (this is a file) 

     upload (this is sub folder) 

如果這是不明確的,我可以拍照。 delete.php和子文件夾上傳都在同一級別,都是openhouse的孩子。希望這是明確的。

+0

您確定文件/home2/braaasil/public_html/openhouse/upload/Glauber_3232_MAGNOLIA_ST__016.jpg存在嗎?請注意,文件名稱區分大小寫。 – Alex

+0

你試過'「../ upload/$ file」'嗎? –

+1

不要說這是你的問題,但你應該總是使用基於當前目錄的相對路徑:'__DIR__。 '/ upload /'。 $ file'。因爲有時候當前的工作目錄不是你想象的那樣。 – PeeHaa

回答

4

你的腳本沒有問題,但我相信你給錯誤的路徑給你的應用程序,所以它無法找到上傳文件夾下的指定文件。

我想你使用的是一個子文件夾,但upload指向根文件夾,因此它找不到該文件夾​​。

嘗試:unlink (__DIR__ . '/upload/' . $file);

如果一切正常,你也可以使用它作爲:"./upload/$file"

+0

@PeeHaa;我自己編輯時可能編輯了我的評論。 – Aristona

+0

@Imaqtpie這現在又錯了 - '__DIR__'沒有結尾的斜線。 –

+0

@GeorgeBrighton對不起,它被意外覆蓋。我已經添加了它。 – Aristona

0

對不起! 由於某些原因,即使我對所有條目都有命令strtolower,DB也開始接受image.jpg和image.JPG。

圖片正在被刪除,代碼被貼在這個問題上。我真的很感激你的時間,並再次道歉。

對於所有其他人:確保數據庫,文件和搜索都設置爲小寫,因爲數據庫可能是大小寫敏感的。