【发布时间】:2016-01-25 18:49:35
【问题描述】:
我想一次上传多个文件。我有
一个模型:
class KakiKingModel extends ActiveRecord {
public $uploadedFiles;
public function rules() {
return [
[['uploadedFiles'], 'file', 'extensions' => 'txt', 'checkExtensionByMimeType' => false, 'skipOnEmpty' => true, 'maxFiles' => 2]];
}
...
控制器:
use yii\web\UploadedFile;
...
public function actionUpload() {
$model = new KakiKingModel;
$t = new KakiKingModel;
if (Yii::$app->request->isPost) {
$files = UploadedFile::getInstances($model, 'uploadedFiles');
$t = [];
$i = 0;
foreach ($files as $i => $file) {
$t[$i] = new KakiKingModel;
$t[$i]->contentUploadedFile = file($file->tempName);
$t[$i]->assign(); // assign file content to model attributes
$i++;
}
if (Model::validateMultiple($t)) {
foreach ($t as $item) {
$item->save(false);
}
return $this->redirect(['index']);
} else {
return $this->render('upload', [
'model' => $model,
't' => $t,
]);
}
}
return $this->render('upload', [
'model' => $model,
't' => $t,
]);
}
查看:
$form = ActiveForm::begin([
....
'options' => ['enctype' => 'multipart/form-data'],
...
<?= $form->field($model, 'uploadedFiles[]')->fileInput(['multiple' => true]) ?>
问题是,它也接受任何其他类型的文件!这是为什么?我究竟做错了什么?谢谢! 更新:我已经稍微改变了我的内容,这样你就可以更好地理解为什么我觉得它不起作用令人不安。恕我直言,它应该可以工作。你能帮我么?谢谢!
【问题讨论】:
标签: forms validation yii2 rules modelattribute