2015-02-23 95 views
0

我已經設法讓我的文件上傳和下載到一個目錄工作,我只是找不到任何刪除選項。我已經寫了一些代碼,但它只是不到風度的工作:這是我的文件上傳:從目錄中刪除文件PHP

<?php 
if(isset($_FILES['file'])){ 
    $file = $_FILES['file']; 
     //file properties 

     $file_name = $file['name']; 
     $file_tmp = $file['tmp_name']; 
     $file_size = $file['size']; 
     $file_error = $file['error']; 
     //the file extension 
     $file_ext = explode ('.', $file_name); 
     $file_ext = strtolower(end($file_ext)); 
     //allowed extensions 
     $allowed = array('txt', 'jpg'); 

     if(in_array($file_ext, $allowed)){ 
      if($file_error === 0){ 
       //allowed size 
       if($file_size<= 2097152){ 
        $file_name_new = $file_name; 
        $file_destination = 'files/' . $file_name_new; 

        if(move_uploaded_file($file_tmp, $file_destination)){ 
         echo '<div class="errors"> Uploaded Succesfully </div>'; 

        } 

       } 


      } 
     }else echo ' <div class="errors"> Wrong file type </div>'; 
} 


?> 

這是我的顯示以及下載和刪除:

<?php 
$dir = "files/"; 
if ($opendir = opendir($dir)){ 
    while ($fileopen = readdir($opendir)){ 
     if ($fileopen != "." && $fileopen != "..") 
     echo "<a href='$dir$fileopen' download>$fileopen</br>"; 
     echo "<a href='deletefile.php?file=".$fileopen."'>DELETE"; 
    } 

} 
    else "could not open folder"; 

?> 

,這是我deletefile.php :

$filename = $_GET['$fileopen']; //get the filename 
unlink('final/files'.DIRECTORY_SEPARATOR.$filename); //delete it 
header('location: upload.php'); //redirect back to the other page 

?> 

任何人都知道如何解決它?

+0

您是否檢查路徑是否正確且文件存在?你有任何錯誤? – Rizier123 2015-02-23 15:31:09

+0

還要記住,傳遞應通過URL刪除的文件的名稱是非常不安全的。 – treegarden 2015-02-23 15:36:32

+0

我沒有得到任何錯誤,它只是沒有做任何事情。 – 2015-02-23 15:36:59

回答

0

嘗試改變:

 unlink('final/files'.DIRECTORY_SEPARATOR.$filename); 

要這樣:

 unlink('files'.DIRECTORY_SEPARATOR.$filename); 

你是不是在文件目錄中工作時,您要刪除。

+0

仍然沒有任何東西 – 2015-02-23 16:29:32

+0

嘗試引用你的文件目錄從你的服務器的根目錄開始: '/ home/sitename/public_html/files' – 2015-02-23 17:29:16