自分のサーバーにアップロードされた画像を削除するボタンを作成しようとしています。しかし、画像をアップロードしてから、何もしないで削除すると、ページから画像が削除されますが、サイトディレクトリをチェックするとまだ画像が残っています。さらに、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> < Completed By</b></p></font></a>
</div>
<div id="logoutDiv">
<a href="index.php?logout"><font color="white"><p align="right"><b>Log Out > </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;'を定義し、それが真か偽かをチェックします。それゆえ、それはいつも偽りです。 – Qirel
ファイルがどこにあるかをスクリプトに指示するロジックが設定されていないため、削除できません。また、アップロードが同時に起こっている場合にのみ、削除部分に移動することも可能です。 – Rasclatt