Не удается отменить связь файла в Codeigniter с файлом больше, чем 10 файлов

1
public function delete($id){

    $get_img  = $this->db->select('pic1, pic2,pic3,pic4,pic5, pic6,pic7, pic8, pic9, pic10, pic11, pic12')->where('id',$id)->get('napi')->row_array();
    //remove all images
    if($get_img){
        $img = array('pic1','pic2','pic3','pic4', 'pic5', 'pic6', 'pic7', 'pic8', 'pic9', 'pic10', 'pic11', 'pic12');
        foreach($img as $im){
            if($get_img[$im]){
                unlink('assets/pdf/data_napi/'.$get_img[$im]);
            }
        }
    }        
    return $this->db->delete('napi',array('id'=>$id));
}

Когда я пытаюсь выполнить этот код, работаю, но не все стираются, пожалуйста, помогите мне

  • 0
    стерты ? из базы данных или из файловой системы? либо записи не удаляются из базы данных, либо из папки удаляется только одно изображение?
  • 0
    из таблицы, а также из системы, когда запускается моя функция, совсем не удаляется, если у меня есть 12 файлов, когда я запускаю свою функцию, только 9 удаляется
Теги:
codeigniter

2 ответа

0

Может быть, путь - это проблема. Получив document root создайте путь и используйте путь для unlink файлов.

$path = $_SERVER['DOCUMENT_ROOT'].'/assets/pdf/data_napi/';
f($get_img){
        $img = array('pic1','pic2','pic3','pic4', 'pic5', 'pic6', 'pic7', 'pic8', 'pic9', 'pic10', 'pic11', 'pic12');
        foreach($img as $im){

    if($get_img[$im]){
                unlink($path.$get_img[$im]);
            }
  }
}
  • 0
    Не работает, если я изменяю эту функцию, только оставшийся 1 файл не очищается, если при загрузке 1 файла файл можно удалить, но при загрузке более 12 файлов файл не может быть удален все
0

ну, на мой взгляд, если 9 удаляется, он должен удалить все. Вы можете сделать некоторые записи, чтобы просмотреть, какой файл будет удален.

Так

public function delete($id){
    $get_img  = $this->db->select('pic1, pic2,pic3,pic4,pic5, pic6,pic7, pic8, pic9, pic10, pic11, pic12')->where('id',$id)->get('napi')->row_array();
    //remove all images
    if($get_img){
        $img = array('pic1','pic2','pic3','pic4', 'pic5', 'pic6', 'pic7', 'pic8', 'pic9', 'pic10', 'pic11', 'pic12');
        foreach($img as $im){
            if($get_img[$im]){
                unlink('assets/pdf/data_napi/'.$get_img[$im]);
                echo '<p>assets/pdf/data_napi/'.$get_img[$im].'</p>'; // to display image that is deleted.
                $this->db->delete('napi',array('id'=>$id));//delete from db.
            }
        }
    }        
    //return $this->db->delete('napi',array('id'=>$id));
    /* as above line returns the control to it master after deleting one record only.
       so you need to put this line inside loop*/
}
  • 0
    Здравствуйте, когда я пробую ваш код, только последний удаленный файл, но первый файл не удаляется, [ссылка] (assets / pdf / data_napi / pic12_21_September_2015_imediabiz.pdf)
  • 0
    сколько это print ? а сколько удаляют?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню