Необходимо указывать maxFiles, по дефолту значение равно 1
В исходнике вот так:
if($this->maxFiles > 1) { // Виновник
$files=$object->$attribute;
if(!is_array($files))
$files = CUploadedFile::getInstances($object, $attribute); // То что мне и нужно
// И т.д. и т.п.
}
else {
$file = $object->$attribute; // А так делать не следует, у меня имена инпутов files[1], files[2]
// И т.д. и т.п.
}
Хотелось бы увидеть // И т.д. и т.п. после $files = CUploadedFile::getInstances($object, $attribute);
Нужен ли цикл для сохранения отдельно каждого файла? Или есть другой путь?
Если я использую цикл:
...
$model->fileToLoad = CUploadedFile::getInstances($model, 'fileToLoad');
for ($i=0; $i<count($model->fileToLoad);$i++){
$newImage = new Image;
$newImage = $model->fileToLoad[$i];
...
if ($newImage->save()) {
$newImage->image->saveAs($imagesPath.'/'.$fileName.'.jpg');
}
}
$this->redirect(array('index'));
То в этом случае если пользователь делает double click или успевает сделать много кликов, Action не успевает обрабатывать цикл и происходит повторная загрузка файлов. Даже не повторная а столько раз сколько пользователь успел нажать кнопку Submit до закрытия формы.
Даже несмотря на redirect…
Есть ли решение или нужно будет контролировать контент формы на схожесть?