Wie zum hochladen mehrerer Dateien mit Yii-framework 2.0
Arbeit mit Yii framework 2.0-ich möchte in der Lage sein, mehrere Dateien hochladen. Folgende Yii 2 Dokumentation, Unterabschnitt Upload Multiple Files
ich habe das folgende Modell.
class Newsletter extends \yii\db\ActiveRecord {
public $attachment_file;
public function rules()
{
return [
[['attachment_file'], 'file', 'maxFiles' => 5],
];
}
public function upload() {
if ($this->validate()) {
foreach ($this->attachment_file as $file) {
echo '<pre>'; print_r($file); echo '</pre>';
}
return true;
} else {
return false;
}
}
}
Unten ist meine Ansicht.
<?php use yii\widgets\ActiveForm; ?>
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model, 'attachment_file[]')->fileInput(['multiple' => true,]) ?>
<button>Submit</button>
<?php ActiveForm::end() ?>
In meinem controller habe ich folgenden code-snippet.
if (Yii::$app->request->isPost) {
$model->attachment_file = UploadedFile::getInstances($model, 'attachment_file');
if ($model->upload()) {
die();
//file is uploaded successfully
return;
}
}
Alle obigen code, ich erwarte ich kann wählen Sie mehrere Dateien mit einem input-file-element. Aber es ist nicht wie das, was ich erwarte. Wenn ich wählen Sie mehrere Dateien mit einem gleichen input-file-element und drücken Einreichen ich sah nur die Letzte ausgewählte Datei. So fange ich an, Zweifel über, was ich Tue. Habe ich etwas falsch? Oder muss ich die add-input-file-element mehrere Male, ein input-file-element für eine Datei hochladen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen, was ich versucht habe:
anzeigen-code
controller
MultipleUploadForm Modell
Dieser code ist für mich arbeiten. Hoffe, das funktioniert für Sie zu.