我有一个程序,我上传照片,它显示在上面。刷新页面后没有任何AJAX,照片显示出来。但如果我再次刷新,照片将被重新上传并显示。如何在最初上传数据后删除数据?
这是主页。
<?php
include 'id2.php';
$file = $_FILES['image']['tmp_name'];
if(!isset($file)) {
echo "Please select image.";
} else {
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = $_FILES['image']['name'];
$image_size = getimagesize($_FILES['image']['tmp_name']);
if($image_size==FALSE) {
echo 'that is not an image.';
} else {
if (!$insert = mysql_query("INSERT INTO photo VALUES ('', '$image_name', '$image')")) {
echo "Problem uploading image";
}
}
}
?>
<form action="Photosite.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image"></br></br>
<input type="submit" value="Submit">
</form>
我的图片显示页面。
$query = "SELECT `id` FROM `photo`.`photo`";
$query_run = mysql_query($query);
while ($data = mysql_fetch_array($query_run)) {
echo '<'.'img src="id.php?id='.$data['id'].'">';
}
其余的
$id = abs($_GET['id']);
$query = mysql_query("SELECT `image` FROM `photo`.`photo` WHERE id='$id'");
$data = mysql_fetch_array($query) or die (mysql_error());
$image = $data['image'];
$jpgimage = imagecreatefromstring($image);
$image_width = imagesx($jpgimage);
$image_height = imagesy($jpgimage);
$new_size = ($image_width + $image_height)/($image_width*($image_height/45));
$new_width = $image_width * $new_size;
$new_height = $image_height * $new_size;
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresized($new_image, $jpgimage, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
header('Content-type: image/jpeg');
imagejpeg($new_image, null);
?>
我觉得答案很简单,但我是新手,所以谢谢!
哦,是的,我知道我的一些查询功能已经过时了!
答案 0 :(得分:2)
您正在寻找的概念称为Post/Redirect/Get。它与“删除”数据无关,但是您希望在POST后发出单独的GET请求,以防止重复提交POST数据(并且更加用户友好)。
在数据库中成功提交表单并存储后,执行:
header('Location: /path/to/view/uploaded/image', true, 303);
exit;
...或重定向到您希望用户去的任何地方,即使它是同一页面。
答案 1 :(得分:0)
照片正在重新上传,因为在刷新页面时会再次提交表单。要删除照片,您需要按以下方式编写查询:
$query = "DELETE FROM photo WHERE id = " . $id_of_image;
如果您不希望在刷新时上传照片,则应在文件上传后重定向该页面。
header('Location: http://www.example.com/');
答案 2 :(得分:0)
在上传文件的末尾使用header('location: showimagefile.php?imageid');
。他们不能单击ctrl + r来刷新页面并重新上传图像。如果他们返回一个页面,它会要求他们重新提交数据,使用查询查看没有包含该数据的行。