簡體   English   中英

圖像刪除按鈕無法正常工作?

[英]Image delete button not functioning correctly?

我正在嘗試創建一個按鈕,以刪除上傳到我的服務器上的圖像。 但是,當我上載圖像然后單擊“刪除”時,沒有任何效果,它將從頁面中刪除圖像,但是當我檢查站點目錄時,該圖像仍然存在。 另外,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>

您的$loadingimage變量始終為false。 因此,您將永遠不會執行unlink()函數。 如果您認為這是正確的,因為您在if(isset($_FILES['UploadFileField'])){}中將其設置為trueif(isset($_FILES['UploadFileField'])){}不會,因為重新加載了頁面並傳遞了$_POST['delete']頁面上的[ $_POST['delete']$loadingimage變量將再次設置為false。 因此,刪除條件if($loadingimage==true){} ,您的代碼應該可以工作。 我完全看不出您要做出此條件的任何原因。

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

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

你可以改變

if ($loadingimage == true){

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

這只會刪除該文件(如果存在),並防止unlink引起警告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM