我有一个文件夹,用于保存我的图像,名为img/
。我有一张包含所有图像的表格:
<table border="3">
<tr>
<td>
<?php
$files = glob("img/*");
foreach ($files as $file) {
echo "<div class='divimages'>";
echo '<img src="'.$file.'"/>';
echo "<input type='submit' value='Delete image'/><br>";
echo "</div>";
}
?>
</td>
</tr>
</table>
如何删除与按钮关联的图像,其值为"Delete image"
。
答案 0 :(得分:60)
有几条路线。一个,最简单的,将涉及将其变成一种形式;提交时,您对POST数据做出反应并使用unlink
免责声明:这不安全。攻击者可以使用此代码删除服务器上的任何文件。您必须扩展此演示代码以添加一些安全措施,否则您可能会遇到不好的事情。
每个图像的显示标记都包含如下形式:
echo '<form method="post">';
echo '<input type="hidden" value="'.$file.'" name="delete_file" />';
echo '<input type="submit" value="Delete image" />';
echo '</form>';
...并且在同一个PHP文件的顶部:
if (array_key_exists('delete_file', $_POST)) {
$filename = $_POST['delete_file'];
if (file_exists($filename)) {
unlink($filename);
echo 'File '.$filename.' has been deleted';
} else {
echo 'Could not delete '.$filename.', file does not exist';
}
}
// existing code continues below...
您可以使用javascript详细说明:您可以发送AJAX请求,而不是提交表单。服务器端代码看起来与此类似。
文档及相关阅读
unlink
- http://php.net/manual/en/function.unlink.php $_POST
- http://php.net/manual/en/reserved.variables.post.php file_exists
- http://php.net/manual/en/function.file-exists.php array_key_exists
- http://php.net/manual/en/function.array-key-exists.php 答案 1 :(得分:22)
您可以使用unlink()
功能删除PHP中的文件。
unlink('path/to/file.jpg');
答案 2 :(得分:3)
删除使用http://www.php.net/manual/en/function.unlink.php 希望你能写逻辑吗?
答案 3 :(得分:3)
首先检查图像是否存在?如果是,则只需调用unlink(您的文件路径)功能删除您的文件,否则向用户显示消息。
if (file_exists($filePath))
{
unlink($filePath);
echo "File Successfully Delete.";
}
else
{
echo "File does not exists";
}
答案 4 :(得分:2)
您可以尝试使用此代码。这是简单的PHP图像从服务器删除代码。
<form method="post">
<input type="text" name="photoname"> // You can type your image name here...
<input type="submit" name="submit" value="Delete">
</form>
<?php
if (isset($_POST['submit']))
{
$photoname = $_POST['photoname'];
if (!unlink($photoname))
{
echo ("Error deleting $photoname");
}
else
{
echo ("Deleted $photoname");
}
}
?>
答案 5 :(得分:0)
<?php
require 'database.php';
$id = $_GET['id'];
$image = "SELECT * FROM slider WHERE id = '$id'";
$query = mysqli_query($connect, $image);
$after = mysqli_fetch_assoc($query);
if ($after['image'] != 'default.png') {
unlink('../slider/'.$after['image']);
}
$delete = "DELETE FROM slider WHERE id = $id";
$query = mysqli_query($connect, $delete);
if ($query) {
header('location: slider.php');
}
?>