【问题标题】:how to delete multiple files (codeigniter), according to a specific id?如何根据特定的ID删除多个文件(codeigniter)?
【发布时间】:2019-07-09 12:46:57
【问题描述】:

您好,我目前正在尝试 unlink() 具有特定类别 ID 的文件夹中的多个文件,获取正确的文件(名称)没问题,以及如何取消链接我也知道的文件,但我很难循环覆盖查询中的结果数组,然后从查询中删除不是所有文件而是那些文件,这是我的代码:

/**
 * delete category by id
 * @param $id category_id
 * @return boolean 
 */
public function delete_images($id){

    $this->db->select('post_image');
    $query = $this->db->get_where('posts', array('category_id' => $id));
    $images = $query->result_array();

    if (!empty($images)){
      if(!in_array('default_image', $images)){
        foreach ($images as $image) { 
            unlink(FCPATH . 'assets/images/posts/' . $image);
        }
      }
    } else {
      $this->db->query("DELETE FROM categories WHERE categories.id = $id");
    }
}

感谢帮助,谢谢。

实际结果是:

Message: Array to string conversion
Filename: models/Category_model.php
Line Number: 71




【问题讨论】:

  • unlink(FCPATH . 'assets/images/posts/' . $image['post_image']);
  • 你的行号是多少,这里是 71
  • 对不起@RejoanulAlam 这是取消链接所在的行......
  • @M.Hemant 看起来很有希望,我会试试的,谢谢
  • 如果@M.Hemant 代码不起作用,请尝试不使用FCPATH,答案中提供了更多详细信息

标签: mysql codeigniter codeigniter-3


【解决方案1】:

我认为你的代码应该喜欢

unlink('assets/images/posts/' . $image['post_image']);

你错过了索引,它变成了一个数组,但字符串应该在那里

【讨论】:

    【解决方案2】:

    此代码有效

     unlink(FCPATH . 'assets/images/posts/' . $imageName);
    

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      相关资源
      最近更新 更多