0
Я пытаюсь загрузить несколько файлов с помощью функции перетаскивания. Я получил массив в то время как нажать на Save(), но она не в состоянии загрузить его бросает:Не удалось загрузить мутированное изображение с помощью kartik fileinput в yii2
Call to a member function SaveAs() on array
_form.php
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use backend\models\Users;
use yii\helpers\Arrayhelper;
use kartik\file\FileInput;
use yii\web\UploadedFile;
use yii\helpers\Url;
?>
<div class="album-form">
<?php $form = ActiveForm::begin([
'options' => ['enctype' => 'multipart/form-data'],
'id' => $model->formName(),
'enableAjaxValidation' => true,
]); ?>
<?php echo FileInput::widget([
'name' => 'albummediaFile[]',
'options'=>[
'multiple'=>true,
],
'pluginOptions' => [
'maxFileCount' => 10,
'showUpload' => false,
'maxFileSize'=>2000,
'allowedFileExtensions' => ['jpg', 'png','jpeg'],
]
]);
?>
AlbumController.php (контроллер)
public function actionCreate()
{
$model = new Album();
$modelalbummedia = new Albummedia();
if ($model->load(Yii::$app->request->post())) {
$modelalbummedia->albummediaFile = UploadedFile::getInstances($modelalbummedia, 'albummediaFile');
if ($modelalbummedia->upload()) {
return;
}
$modelalbummedia->save();
}
$model->save();
return $this->redirect(['view', 'id' => $model->albumID]);
} else {
return $this->render('create', [
'model' => $model,
'modelalbummedia' => $modelalbummedia,
]);
}
}
Albummedia .php (Модель)
public function upload()
{
if ($this->validate()) {
foreach ($this->albummediaFile as $file) {
$file->saveAs('uploads/Album_Media/' . $file->baseName . '.' . $file->extension);
$model->albummediaFile = $_FILES['albummediaFile']; **Not getting file name here.
}
return true;
} else {
return false;
}
}
Я редактировал свой код, как описано выше см , Теперь он покажет мне ошибку: ** Неопределенное смещение: 0 ** – Akkie
Прежде всего, вы все еще используете внутри цикла '$ modelalbummedia-> albummediaFile'. Second: 'if ($ _ FILES ['albummediaFile'] ['name'] [0]! =" ") {' Эта строка вызывает исключение, так как u не отправляет файлы. Измените его на 'if ($ modelalbummedia-> albummediaFile) {' и перестань использовать '$ _FILES' напрямую. – Yupik
@Akkie обновленный ответ, пожалуйста, прочитайте его внимательно, не просто вставляйте и забывайте. – Yupik