我用以下代码从数据库中删除了图片网址,但是没有从上传路径中删除文件图片,如何在数据库中将URL文件从上传路径中删除(两者一起)?
此php仅适用于数据库中的删除网址:
$delete = $this -> input -> post('checked');
foreach($delete as $val) {
$this - > db - > delete($this - > _table, array('id' = > $val));
}
更新
我在使用以下代码时遇到错误。
$id = '166';
$query = $this - > db - > get_where('hotel_image', array('id' = > $id));
if ($query - > num_rows() > 0) {
$res = $query - > row();
unlink(base_url(uploads/$res - > images));//This is line 161
}
$this - > db - > delete('hotel_image', array('id' = > $id));
错误:(我的图片在此版本中:http://example.com/uploads/
)
遇到PHP错误
严重性:通知
消息:使用 未定义的常量上传 - 假设'上传'
文件名:user / dence.php
行号:161
遇到PHP错误
严重性:警告
消息: unlink()[function.unlink]:http不允许取消链接
文件名:user / dence.php
行号:161
答案 0 :(得分:0)
您需要使用unlink()从磁盘中删除文件,只需将文件名作为参数传递。
bool unlink(string $ filename [,resource $ context])
删除文件名。类似于Unix C unlink()函数。一个E_WARNING 失败时将生成级别错误。
类似的东西(这是简化代码。您可能想要检查数据库中的路径是否完整,否则添加其余部分。):
$delete = $this -> input -> post('checked');
foreach($delete as $val) {
$this->db->select('images')->from($this->_table)->where('id',$val);
$query = $this->db->get();
if($query->num_rows() > 0)
{
$res = $query->row();
$file = './uploads/'.$res - > images));
// echo $file; #check if this is the correct path!
@unlink($file);
}
//now query to delete
$this -> db -> delete($this - > _table, array('id' = > $val));
}