Php 在codeigniter中删除后从文件夹中删除图像
我不仅要删除数据库中的图像,还要删除文件夹中的图像 这是我的模型Php 在codeigniter中删除后从文件夹中删除图像,php,codeigniter,Php,Codeigniter,我不仅要删除数据库中的图像,还要删除文件夹中的图像 这是我的模型 public function delete($id) { if ($this->db->delete("np_gallery", "id = ".$id)) { return true; } } 这是我的控制器 public function delete_image($id)
public function delete($id)
{
if ($this->db->delete("np_gallery", "id = ".$id))
{
return true;
}
}
这是我的控制器
public function delete_image($id)
{
$this->np_gallery_model->delete($id);
$query = $this->db->get("np_gallery");
$data['records'] = $query->result();
$this->load->view('admin/gallery/gallery_listing',$data);
}
这是我的看法
<table class="table table-bordered">
<thead>
<tr>
<td>Sl No</td>
<td>Tag</td>
<td>Image</td>
<td>Action</td>
</tr>
</thead>
<?php
$SlNo=1;
foreach($records as $r)
{
?>
<tbody>
<tr>
<?php $image_path = base_url().'uploads';?>
<td><?php echo $SlNo++ ; ?></td>
<td><?php echo $r->tag; ?></td>
<td><img src="<?php echo $image_path; ?>/images/gallery/<?php echo $r->picture;?>" style=" width:35%; height:100px;"/></td>
<td><a href="<?php echo site_url() . "/np_gallery/select_content/". $r->id?>" class="fa fa-pencil"></a>
<a href="<?php echo site_url() . "/np_gallery/delete_image/". $r->id?>" onClick="return confirm('Are you sure want to delete')" class="fa fa-trash"></a></td>
</tr>
</tbody>
<?php } ?>
</table>
Sl号
标签
形象
行动
/图像/图库/“style=”宽度:35%;高度:100px;"/>
我成功删除了数据库中的数据,但文件夹中的图像也不会被删除。在控制器中添加一些额外的代码:
public function delete_image($id)
{
$image_path = base_url().'uploads/images/gallery/'; // your image path
// get db record from image to be deleted
$query_get_image = $this->db->get_where('np_gallery', array('id' => $id));
foreach ($query_get_image->result() as $record)
{
// delete file, if exists...
$filename = $image_path . $record->picture;
if (file_exists($filename))
{
unlink($filename);
}
// ...and continue with your code
$this->np_gallery_model->delete($id);
$query = $this->db->get("np_gallery");
$data['records'] = $query->result();
$this->load->view('admin/gallery/gallery_listing',$data);
}
}
备注:你可以在模型DELTEE()方法中做它。考虑它更适合你的应用需求。
尝试这些
foreach ($query_get_image->result() as $record)
{
// delete file, if exists...
$filename = $image_path . $record->picture;
if (file_exists($filename))
{
unlink($filename);
}
// ...and continue with your code
$this->np_gallery_model->delete($id);
$query = $this->db->get("np_gallery");
$data['records'] = $query->result();
$this->load->view('admin/gallery/gallery_listing',$data);
}
我应该把这个代码放在哪里?当你在控制器中删除图像时,你可以应用一个条件,比如
如果图像删除而不是取消链接(“imagepath”)
但是您现在也必须传递图像名称
您只能传递id,或者您可以从控制器中的id获取图像名称,无论您喜欢什么:)这样做有效吗?不有效