2017-09-04 101 views
0

這個小小的問題已經毀了我的一天。我不能通過PHP unlink函數刪除文件。我正在創建PHP表單來更新和編輯PDF文件。以下是我的一份html表格和PHP unlink腳本。PHP unlink不會刪除

HTML

<form method="post" action="#" enctype="multipart/form-data"> 
<input type="file" value="<?php echo $row['img']?>" name="image"> 
<input type="submit" name="update"> 
</form> 

PHP

<?php 
if(isset($_POST['update']) && ($_FILES['image']['name'])){ 
$image=$_POST['image']; 
unlink('../pdf/services/'.$image); 
} 

?> 
+1

'$ _POST ['image']'從哪裏來? – iainn

+4

非常不安全! Apache有寫權限?路徑是否正確並存在文件? – mvladk

+1

從你的鏈接中獲得的回報值是多少?可能許可問題。使用'chmod'來設置適當的權限。 – Anusha

回答

0

嘗試$_FILES。像 $image = $_FILES['image'];然後$imgname = $image['name'];

後,您可以使用unlink();爲你想(unlink("../pdf/services".$imgname);

希望我幫助,這之後我的測試工作!

+0

我試過你的方式,但它不起作用,仍然文件存在於文件夾中。 –

0

每當你嘗試刪除使用unlink一個文件,你需要確保一切正常:

  1. 是我想從可用刪除的文件的路徑?我可以訪問沿路徑需要的所有文件夾嗎?如果沒有,那麼就需要給予必要的特權。

  2. 我認爲這是我的位置嗎?您需要運行getcwd()這是當前的工作目錄。如果你的頁面不在你想要的位置,那麼與它相比,你想要達到的路徑將意味着不同的東西

  3. 添加我想要的路徑我在第二點正確的位置和一個我期望?

如果以上所做的一切都正常並且仍然​​存在問題,請檢查錯誤日誌,它可能會提供有用的信息。如果問題仍然存在,那麼您需要在要從其中移除其他文件的路徑上創建一個虛擬文件。該文件是否已創建?它是否在正確的位置創建?

+0

文件路徑和位置是否正確。我已經通過使用echo功能進行了測試...它打印正確的文件名。新文件已正確上傳。 '''''''''''''''''''''''''斷開鏈接。 –

+0

@DipakOjha你能檢查新文件是否與要刪除的文件位於同一文件夾中嗎?如果是這樣,你可以使用unlink刪除新文件嗎? –