Php 从文件夹中删除与记录关联的图像
我有一个页面,允许使用复选框删除多个记录,所有工作正常 然而,每个记录可能都有一个与之相关的图像存储在一个文件夹中,该文件夹也需要删除,但我不知道如何实现这一点,即使我搜索了Stackoverflow和Google 如何从MySQL数据库中删除记录以及从文件夹中删除与其关联的图像 到目前为止,我得到的是: 删除记录的代码:Php 从文件夹中删除与记录关联的图像,php,jquery,mysql,Php,Jquery,Mysql,我有一个页面,允许使用复选框删除多个记录,所有工作正常 然而,每个记录可能都有一个与之相关的图像存储在一个文件夹中,该文件夹也需要删除,但我不知道如何实现这一点,即使我搜索了Stackoverflow和Google 如何从MySQL数据库中删除记录以及从文件夹中删除与其关联的图像 到目前为止,我得到的是: 删除记录的代码: if ( isset( $_POST[ 'chk_id' ] ) ) { $arr = $_POST[ 'chk_id' ]; foreach ( $arr
if ( isset( $_POST[ 'chk_id' ] ) ) {
$arr = $_POST[ 'chk_id' ];
foreach ( $arr as $id ) {
@mysqli_query( $KCC, "DELETE FROM pageContent WHERE contentID = " . $id );
}
$msg = "Page(s) Successfully Deleted!";
header( "Location: delete-familyservices.php?msg=$msg" );
}
选择要删除的记录的表单:
<form name="deleteRecord" id="deleteRecord" method="post" action="delete-familyservices.php">
<?php if (isset($_GET['msg'])) { ?>
<p class="alert alert-success">
<?php echo $_GET['msg']; ?>
</p>
<?php } ?>
<table width="100%" class="table table-striped table-bordered table-responsive">
<tr>
<th>Page Title</th>
<th>Page Text</th>
<th>Page Image</th>
<th>Delete</th>
</tr>
<?php do { ?>
<tr>
<td width="30%" style="vertical-align: middle">
<h4 style="text-align: left">
<?php echo $row_rsContent['contentTitle']; ?>
</h4>
</td>
<td width="45%" style="vertical-align: middle">
<?php echo limit_words($row_rsContent['contentData'], 10); ?> ...</td>
<td align="center" style="vertical-align: middle">
<?php if (($row_rsContent['contentImage']) != null) { ?>
<img src="../images/<?php echo $row_rsContent['contentImage']; ?>" class="img-responsive">
<?php } else { ?> No Image
<?php } ?>
</td>
<td width="5%" align="center" style="vertical-align: middle"><input type="checkbox" name="chk_id" id="chk_id" class="checkbox" value="<?php echo $row_rsContent['contentID']; ?>">
</td>
</tr>
<?php } while ($row_rsContent = mysqli_fetch_assoc($rsContent)); ?>
</table>
<p> </p>
<div class="form-group" style="text-align: center">
<button type="submit" name="submit" id="submit" class="btn btn-success btn-lg butt">Delete Selected Page(s)</button>
<button class="btn btn-danger btn-lg butt" type="reset">Cancel Deletion(s)</button>
</div>
</form>
页面标题
页面文本
页面图像
删除
...
“class=”img responsive“>
没有图像
您必须使用存储在数据库中的图像路径,如下所示:
unlink(' the link of the images which is fetched from db'); // correct
别忘了检查图像是否存在文件\u exists()//
从另一个站点获得此信息,并进行了一些尝试和错误
if($_POST) {
$arr = isset($_POST['chk_id']) ? $_POST['chk_id'] : false;
if (is_array($arr)) {
$filter = implode(',', $arr);
$query = "SELECT *filename* FROM *table* WHERE *uniqueField* IN ({$filter})";
$result = mysqli_query(*$con*, $query);
while ($row = mysqli_fetch_object($result)) {
$pathToImages = "*path/to/images*";
{
unlink("{$pathToImages}/{$row->contentImage}");
}
}
// DELETE CAN BE DONE IN ONE STATEMENT
$query = "DELETE FROM *table* WHERE *uniqueField* IN ({$filter})";
mysqli_query(*$con*, $query);
$msg = "Page(s) Successfully Deleted!";
header("Location: *your-page.php*?msg=$msg");
}
}
感谢所有做出贡献的人
希望这对其他人有所帮助。您的代码容易受到攻击。您应该使用或准备带有绑定参数的语句,如中所述。特别是因为当您尝试与这些元素交互时,它会在和CSS中造成问题。不要了解您的问题所在。您得到了文件-然后删除它!据我回忆,PHP已经成功了t实际上从一开始就内置了文件系统包,这意味着很多年了。@AlexHowansky.Am正在使用mysqli(据我所知,PHP将不再支持mysql,我正在使用mysqli)这个页面和其他类似的页面将在安全登录之后。@JayBlanchard。所有id都是唯一的。我知道这类似于取消链接(“../images/”)
,但我不知道在现有代码中放在哪里。
if($_POST) {
$arr = isset($_POST['chk_id']) ? $_POST['chk_id'] : false;
if (is_array($arr)) {
$filter = implode(',', $arr);
$query = "SELECT *filename* FROM *table* WHERE *uniqueField* IN ({$filter})";
$result = mysqli_query(*$con*, $query);
while ($row = mysqli_fetch_object($result)) {
$pathToImages = "*path/to/images*";
{
unlink("{$pathToImages}/{$row->contentImage}");
}
}
// DELETE CAN BE DONE IN ONE STATEMENT
$query = "DELETE FROM *table* WHERE *uniqueField* IN ({$filter})";
mysqli_query(*$con*, $query);
$msg = "Page(s) Successfully Deleted!";
header("Location: *your-page.php*?msg=$msg");
}
}