我只是想在同一时间向访问者显示图像,从服务器上删除此图像。
我试过这个
显示图片。
从数据库中删除记录。
使用unlink()
从服务器删除图像。
echo "image";
$deleteimage = mysql_query("DELETE FROM table WHERE uniqueid= '$id'") or die(mysql_error());
unlink("../image path");
但是当页面加载时,它会在向访问者显示之前从服务器中删除该文件。
搜索后,我发现在渲染输出之前在堆栈中执行了PHP
。
所以我如何使用ajax
jquery
执行此操作。
即:加载页面并显示图像,然后执行ajax代码并删除图像。
请提供一些ajax代码。我不熟悉javascript
(ajax,jquery)
答案 0 :(得分:1)
<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.js"> </script>
</head>
<body>
<script>
function unlinkImage(src) {
$.ajax({
type:"POST",
url: "delete.php",
data:{
src:src
}
}).done(function() {
alert('done')
});
}
</script>
<img src='someimage.png' onload="unlinkImage('someimage.png')" />
</body>
</html>
并在php端删除(delete.php):
<?php
$res = unlink($_REQUEST['src']);
?>
答案 1 :(得分:0)
使用AJAX
可能会删除哪些图像。连接问题或被禁用javascript
。
你需要这样做:
<img src="imgage.php?id=ID" />
并在image.php
中写道:
// Select image source
$image = mysql_result(mysql_query("SELECT image FROM table WHERE uniqueid= '".intval($id)."'"), 0, 'image');
// Show image
header('Content-type: image/jpeg'); // Or your image type
readfile($image);
// Delete image
$deleteimage = mysql_query("DELETE FROM table WHERE uniqueid= '".intval($id)."'") or die(mysql_error());
unlink($image);
答案 2 :(得分:0)
这是工作代码,
<html>
<head>
<title>Log In Page</title>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script>
function ImageLoad(obj) {
var src = $(obj).attr('src');
$.ajax({
type:"POST",
url: "test.php",
data:{
imageSrc:src
},
dataType:"text",
success: function(data) {
$('#doneDiv').html(data);
}
});
}
</script>
</head>
<body>
<img src="http://s8.postimg.org/9rhympj35/agent_Photo.jpg" onload="ImageLoad(this);">
<div id="doneDiv"></div>
</body>
</html>
在test.php
中,您可以这样做,
<?php
$res = unlink($_POST['imageSrc']);
echo 'done';
// or you can delete from database with your code
?>