решено У меня есть поле с именем файла additional_photos[]
на веб-странице, может быть n экземпляров этого поля, конечно, с другим идентификатором, но с одинаковым именем.В обычном PHP-коде я буду делать foreach
на $_FILES['additional_photos']
и буду отдыхать легко.Но как мне добиться того же с CodeIgniter?Я попытался сделать это:
$additional_photosCount = count($_FILES['additional_photos']['name']); //Is there a better way to refer $_FILES like I can refere $_POST in CI?
for($i=0; $i< $additional_photosCount; $i++){
$uploadConfig['file_name'] = $this->properties['userId'].'-'.$_FILES['additional_photos']['name'][$i];
$this->CI->upload->initialize($uploadConfig);
if(!$this->CI->upload->do_upload('additional_photos['.$i.']')){;
echo $this->CI->upload->display_errors();
}
}
Но это,
a) ИМХО, неверный путь
b) выдает ошибку «Вы не выбрали файл для загрузки».
Обновление
Это выход, который я мог бы применить:
$additional_photosCount = count($_FILES['additional_photos']['name']);
for($i=0; $i< $additional_photosCount; $i++){
$uploadConfig['file_name'] = $this->properties['userId'].'-'.$_FILES['additional_photos']['name'][$i];
$this->CI->upload->initialize($uploadConfig);
$_FILES['additional_photos_'.$i] = array(
'tmp_name'=> $_FILES['additional_photos']['tmp_name'][$i],
'name'=> $_FILES['additional_photos']['name'][$i],
'type'=> $_FILES['additional_photos']['type'][$i],
'size'=> $_FILES['additional_photos']['size'][$i],
'error'=> $_FILES['additional_photos']['error'][$i],
);
if(!$this->CI->upload->do_upload('additional_photos_'.$i)){;
echo $this->CI->upload->display_errors();//TODO: instead of echoing push errors to a list
}
}