2016-03-28 92 views
0

我試圖做一個按鈕,刪除上傳到我的服務器上的圖像。然而,當我上傳了一個圖像,然後點擊刪除沒有任何作品,它會從頁面中刪除圖像,但當我檢查網站目錄時,它仍然存在。此外,DELETION COMPLETE或DELETION FAILED都不會顯示回顯消息,因此它讓我想知道它是否可以工作,只是刷新頁面。不知道爲什麼這是,還有一種方法,使圖像呈現時只顯示加載圖像gif?這裏是我得到的:圖像刪除按鈕無法正常工作?

<?php 
ob_clean();session_start(); 

    if (isset($_GET['logout'])){ 
     session_destroy(); 
    } 

    if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) { 
     header("Location: index.php"); 
    } 

    $loadingimage = false; 

    if(isset($_FILES['UploadFileField'])){ 
     $allowed = array('jpg','png','jpeg'); 
     $name = $_FILES["UploadFileField"]["name"]; 
     $tmp = $_FILES['UploadFileField']['tmp_name']; 
     $type = $_FILES['UploadFileField']['type']; 
     $newName = "Image Attachment.jpg"; 
     $types = array('jpg','png','jpeg'); 
     $ext = pathinfo($name, PATHINFO_EXTENSION); 

     if(in_array($ext,$types)){ 
      move_uploaded_file($tmp, "UPLOADS/$newName"); 
      echo '<font size="3"><p align="center"><b>UPLOAD SUCCESSFUL: </font><font color="#000000" size="3">Your document has now been uploaded and is ready to send.</b></p></font>'; 
      $loadingimage = true; 
     } 

     else { 
      if(!$tmp){ 
       echo '<font size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">No document has been selected.</b></p></font>'; 
      } 

      else { 
       echo '<font size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">Uploaded document was an incorrect extension type, please use ".jpg", ".jpeg", or "png" only.</b></p></font>'; 
      } 
     } 
    } 

    if (isset($_POST['submit'])){ 
     header('Location: Review.php'); 
    } 

    if (isset($_POST['delete'])){ 
     if ($loadingimage == true){ 
      echo '<font size="3"><p align="center"><b>DETLEION COMPLETE: </font><font color="#000000" size="3">Image no longer available</b></p></font>'; 
      unlink('UPLOADS/Image Attachment.jpg'); 
      $loadingimage = false; 
     } 

     else{ 
      echo '<font size="3"><p align="center"><b>DETLEION FAILED: </font><font color="#000000" size="3">No image available for deletion</b></p></font>'; 
     } 
    } 
?> 

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 

     <title>Attach Image</title> 

     <link href="CSS/boilerplate.css" rel="stylesheet" type="text/css"> 
     <link href="CSS/master.css" rel="stylesheet" type="text/css"> 
     <script src="JAVASCRIPT/respond.min.js"></script> 
    </head> 
<body link="black"> 
    <div class="gridContainer clearfix"> 
     <div id="borderDiv"> 
      <div id="navDiv"> 
       <div id="backNavDiv"> 
        <a href="CompletedBy.php"><font color="white"><p align="left"><b>&nbsp;&lt;&nbsp;Completed By</b></p></font></a> 
       </div> 

       <div id="logoutDiv"> 
        <a href="index.php?logout"><font color="white"><p align="right"><b>Log Out&nbsp;&gt;&nbsp;</b></p></font></a> 
       </div>  
      </div> 

      <div id="headerDiv"> 
       <p>Attach Image</p> 
      </div> 

       <?php 
        if($loadingimage == false){ 
         echo '<div id="imageDiv"><img src="IMAGES/loading.gif"></div>'; 
        } 

        else{ 
         echo '<div id="imageDiv"><img src="UPLOADS/Image Attachment.jpg"></div>'; 
        } 
       ?>   

      <div id="loginBtnDiv"> 
       <div id="uploadAreaDiv"> 
        <form action="AttachImage.php" method="post" enctype="multipart/form-data" name="FileUploadForm" id="FileUploadForm"> 
        <label for="UploadFileField"></label> 
        <input type="file" name="UploadFileField" id="UploadFileField"/> 
        <input type="submit" name="UploadButton" id="UploadButton" value="Upload"/> 
        </form>  
       </div> 

       <form action="AttachImage.php" method="post" enctype="multipart/form-data" name="delete" id="delete"> 
        <input id="delete" name="delete" type="submit" value="Delete"> 
       </form> 

       <form action="AttachImage.php" method="post" enctype="multipart/form-data" name="FileForm" id="FileForm"> 
        <input id="submit" name="submit" type="submit" value="Next"> 
       </form> 
      </div>    
     </div> 
    </div> 
    <div id="logoDiv"> 
     <img src="IMAGES/Logo.png"> 
    </div> 
</body> 
</html> 
+0

您定義'$ loadingimage = false;',然後檢查它是真是假。它會因爲它而永遠是虛假的。 – Qirel

+0

您沒有設置邏輯來告訴腳本文件所在的位置,因此無法刪除。您也只能在上傳同時發生的情況下才能到達刪除部分。 – Rasclatt

回答

1

正如我之前評論的那樣,因爲您定義了$loadingimage = false;,所以只有在文件同時上傳的情況下,您才能刪除文件 - 這似乎毫無意義。

您應該檢查文件是否存在,而不是使用您的$loadingimage變量來取消鏈接文件。

你可以改變

if ($loadingimage == true){ 

if (file_exists("UPLOADS/Image Attachment.jpg")) { 

這隻會刪除該文件,如果它存在,並防止unlink從造成的警告。

+0

這回答我的問題在最後回答評論謝謝。 –

1

您的$loadingimage變量總是爲false。所以你永遠不會執行unlink()函數。如果您認爲這將是真實的,因爲您將其設置爲true,if(isset($_FILES['UploadFileField'])){},它不會,因爲您的頁面已重新加載並且您通過$_POST['delete']到頁面,並且$loadingimage變量將再次設置爲false。所以刪除條件 if($loadingimage==true){}和你的代碼應該工作。我看不出有什麼理由爲什麼你做這種情況。

+0

好吧,我已經完成了這個工作,並且確實足以工作。但是,我是否會迴應我的DELETION FAILED:沒有可用於刪除的圖像。 ? –

+0

@MattHutch Qirel在下面回答了你的問題。 :-) – DevMan