在 Yii2 中获取 UploadedFile 实例的问题

Problems getting instance of UploadedFile in Yii2

我尝试使用 UploadedFile class 将文件上传到服务器,但我无法获得实例。在我的模型中:

public $arch;
public function rules() {
    return [[['arch'], 'file']];
}

之前$model->arch = file_xxxx.jpg

控制器:

$model->arch = UploadedFile::getInstance($model, 'arch');

之后$model->arch is NULL

查看:

$form = ActiveForm::begin(
    ['id' => 'contact-form'],
    ['options' => ['enctype' => 'multipart/form-data']]
);
print $form->field($model, 'arch')->fileInput()->label(false);

您可以尝试获取文件如下:

// View
<?= $form->field($model, 'arch')->fileInput(); ?>

// Controller
$model->arch = UploadedFile::getInstanceByName('arch');

getInstanceByName() - returns 根据给定的文件输入名称上传的文件。

完成 yii2 Uploading Files 指南。

就我而言,这是因为我忘记添加

'options' => ['enctype' => 'multipart/form-data']

到 ActiveForm 选项。

我也遇到过类似的问题,发现少了"s",

$names = UploadedFile::getInstances($model, 'filename');

而且有效。

刚刚遇到那个问题,这是我在 PHP ini 文件中的上传大小。它是 2MB,文件是 2MB。我将它扩展到 200MB,一切正常!