gpt4 book ai didi

file-upload - 上传多个文件 yii2

转载 作者:行者123 更新时间:2023-12-02 03:21:56 25 4
gpt4 key购买 nike

告诉我哪里错了,一切都试过了

我的 View 文件:

echo FileInput::widget([
'model' => $model,
'attribute' => 'files[]',
'options' => ['multiple' => true]
]);

我也加了

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>

形成元素的enctype选项

型号:我添加两个变量作为属性:

public $files; // files instance
public $serialize; // set string which store the files

在规则中序列化为字符串和文件:

[['files'], 'file', 'skipOnEmpty' => true, 'extensions' => 'gif, jpg, png, pdf, doc, docx', 'maxFiles' => 10],

和 Controller Action :

public function actionUpdate($id)
{
$model = $this->findModel($id);

if ($model->load(Yii::$app->request->post())) {
$oldFiles = $model->serialize;
$files = UploadedFile::getInstance($model, 'files');

if($files === false){
$model->serialize = $oldFiles;
} else {
$serialize = [];

if($model->validate()){
foreach($files as $file){
$ext = end((explode(".", $file)));
$filename = Yii::$app->security->generateRandomString().".{$ext}";
$serialize[] = $filename;
$file->saveAs(Yii::$app->basePath . '/web/image/' . $filename);
}
} else {

}
//print_r($model->getErrors()); die();
$model->serialize = serialize($serialize);
}
$model->save();
return $this->redirect(['view', 'id' => $model->news_id]);
} else {
return $this->render('update', [
'model' => $model,
]);
}
}

那么,$files 是空的,为什么?我还在 $_FILES 数组

中得到一个“4”代码错误

最佳答案

多个文件应该是getInstances。

$files = UploadedFile::getInstances($model, 'files');

关于file-upload - 上传多个文件 yii2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32739097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com