从服务器上的文件夹中删除特定的上传文件并显示剩余文件

时间:2014-03-03 20:49:56

标签: javascript php forms upload

试图让这个工作变得有点疯狂......我有一个照片上传页面,可让您上传多张照片,并在上传表单下方显示特定用户的所有上传照片。我还在每张照片旁边放置了一个删除按钮,但是一旦删除照片,它就会一直显示该图像(尽管照片从服务器中删除时链接已断开)。我首先循环一个包含文件目录和名称的表,然后显示这些照片。我有一个调用unlink()函数的提交按钮。

$photoQuery= "SELECT * FROM photo_index WHERE User_ID='$UserID'";
            $result = mysqli_query($dbcon, $photoQuery);

            while ($photo_data = mysqli_fetch_array($result)){


                echo "<form id=photo_Form action=listing_photos.php method=post> ";
                echo "<input type=hidden name=photoDir value='$photo_data[Photo_Dir]' />";
                echo "<input type=submit name=photoDel id=submit_but value=Delete />";
                echo "</form>";
                echo "<img src='$photo_data[Photo_Dir]' height=100px width=100px>";


    }

然后这是删除照片文件的php和存储照片信息的表格中的行。

if (isset($_POST['photoDel'])){
                $fh = fopen($_POST['photoDir'], 'a');
                fclose($fh);
                unlink($_POST['photoDir']);

                $photoDel= "DELETE FROM photo_index WHERE Photo_Dir='$_POST[photoDir]'";
                $result = mysqli_query($dbcon, $photoDel) or die(mysql_error());

                echo "Photo Removed";

}

我必须在使用取消关联之前打开并关闭文件,因为如果我没有,我会在照片被删除后发出警告,说unlink(images / somephoto.jpg)不存在(因为它已从服务器已经)

点击删除按钮后应刷新页面不应该吗?当页面刷新时,它应重新加载查询,只显示照片列表中列出的照片?无论如何,需要两次刷新才能获得该结果。任何帮助将非常感激,或任何方式来做得更好!欢呼声。

1 个答案:

答案 0 :(得分:0)

首先,您的代码很容易受到SQL注入攻击。你应该研究一下。接下来,也许您应该使用JS来查找和删除文档中的图像。因此,让<button>运行一个函数,该函数从文档中删除具有该特定源的图像。

这是一个PHP代码段:

$photoQuery= "SELECT * FROM photo_index WHERE User_ID='$UserID'";
            $result = mysqli_query($dbcon, $photoQuery);

            while ($photo_data = mysqli_fetch_array($result)){


                echo "<form id=photo_Form action=listing_photos.php method=post> ";
                echo "<input type=hidden name=photoDir value=". $photo_data[Photo_Dir] . "/>";
                echo "<input type=submit name=photoDel id=submit_but value=Delete />";
                echo "</form>";
                echo "<img src=" .$photo_data[Photo_Dir]. "  id = 'picture' height=100px width=100px>";
                echo "<script> 
                         var d = getElementById('submit_but'); 
                         var b = getElementById('pic');
                         d.onclick = function(){
                              pic.parentNode.removeChild(b);
                              return true;
                         }
                      </script>";

    }

请参阅此处了解JavaScript:

http://jsfiddle.net/BUXBq/