0
ドラッグアンドドロップ機能を使用して複数のファイルをアップロードしようとしています。私は(保存をクリックしながら、配列を得た)が、それはスローアップロードすることができません:yii2でkartik fileinputを使用して複数の画像をアップロードできません
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;
}
}
:代わりに
$modelalbummedia->albummediaFile
コピー&貼り付けコードの
そして、ループを使用
$file
内側:へ。今度は私にエラーが表示されます:**未定義オフセット:0 ** – Akkie
まず最初に、 '$ modelalbummedia-> albummediaFile'をループ内で使用します。 2番目の: 'if($ _FILES ['albummediaFile'] ['name'] [0]!=" "){'この行は例外をスローします。それを 'if($ modelalbummedia-> albummediaFile){'に変更し、 '$ _FILES'の使用を直ちに止めてください。 – Yupik
@Akkieの更新された回答は、慎重に読んでください。 – Yupik