2017-10-17 89 views
0

我正在研究一種使用unlink()刪除圖片的方法。不過,我找不到一種方法使它使用絕對路徑工作。unlink()不能用絕對路徑工作

這裏是我的代碼:

$img = $_SERVER['DOCUMENT_ROOT'].'/i/koala.png'; 
unlink($img); 

錯誤:

Warning: unlink(/var/www/html/i/koala.png): No such file or directory in /var/www/html/king/test.php on line 15 

任何幫助嗎?

+1

驗證路徑,它可能是錯的 –

+0

當您登錄到終端和類型會發生什麼:'LS的/ var/www/html等/ I/koala.png'? –

回答

1

當您拼湊各種字符串以創建路徑時,您應該使用realpath來驗證它並轉換任何相關片段,如/../

http://php.net/manual/en/function.realpath.php

$path = $_SERVER['DOCUMENT_ROOT'].'/i/koala.png'; 
$img = realpath($path); 

$ IMG要麼是假的,或者一個有效路徑的字符串!

+0

我的$ img變量變成了NULL,使用realpath() – casusbelli

+0

我在2中分割了這行,'die($ path);'和任何出來的,到終端並輸入'ls/the/path/it/gave/you .php' – delboy1978uk

+0

ls:無法訪問'/ var/www/html/..':沒有這樣的文件或目錄 – casusbelli

1

檢查現在

$filename = '/var/www/html/i/koala.png'; 

if(file_exists($filename)) 
{ 
    chmod($filename, 777); 
    unlink($filename); 
    echo "file has deleted"; 
} 
else 
{ 
echo "file not exists"; 
} 
+0

它返回「文件不存在」,但絕對路徑工作 – casusbelli

+1

然後可能是路徑是錯誤的 –