【问题标题】:Unlink multiple images from root folder从根文件夹取消链接多个图像
【发布时间】:2017-11-23 01:02:21
【问题描述】:

我正在尝试使用此逻辑删除和取消链接多个图像:

  1. 点击从视图中删除,id 要删除的图像将传递给控制器​​
  2. 从控制器使用get method获取id并发送到模型以检查数据库中的相关图像。

  3. 从模型中,如果存在,将图像列表保存到数组中并发送回模型以继续取消链接。

  4. 返回控制器,foreach 要取消链接的图像。

  5. 如果取消链接成功,则继续从数据库中删除图像。

我的控制器

$imageToDelete = $this->Wallpaper_model->loadImage();

$path = $_SERVER['DOCUMENT_ROOT']."uploads/";

foreach ($imageToDelete as $deletRow) {

    unlink($path.$deletRow);

}

我的模特

public function loadImage(){
    $this->db->select('image');
    $this->db->from('tblimg');
    $this->db->where('groupid', $this->getId());

    $query = $this->db->get();
    $data = $query->result_array();
    if($data != null){
        return $data;
    } else {
        return false;
    }
}

使用这些编码,我在控制器中的unlink 处出现错误,其中$deleteRow 导致Array 如下引号。

消息:unlink(root-folder-goes-here/Array): 没有这样的文件或 目录

从文件夹中取消链接图像的正确方法是什么?谢谢。

编辑

print_array($imageToDelete) 结果:

Array
(
    [0] => Array
        (
            [image] => 5948db352524e.jpg
        )

    [1] => Array
        (
            [image] => 5948db352524e1.jpg
        )

    [2] => Array
        (
            [image] => 5948db352524e2.jpg
        )

)

【问题讨论】:

  • 所以首先通过print_r($imageToDelete); 找出您正在处理的内容,因为它显然不是您希望的那样。然后将结果添加到您的问题中
  • @RiggsFolly 我确实打印了$imageToDelete,它显示了所有图像列表。但是当我放入 foreach 时,错误显示名称为Array
  • 向我们展示print_r($imageToDelete);的结果
  • 你的代码是正确的使用我的答案。
  • @VK321 让我先试试吧。

标签: php image codeigniter unlink


【解决方案1】:

$deletRow 是数组。您的查询在 groupid 上返回不止一行

使用

// column name from db
$deletRow['image']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    相关资源
    最近更新 更多