Cakephp4,检测上传字段是否存在

Cakephp4, detect if upload field present

从 3.9 迁移时,尝试使用上传行为检查文件是否已上传时出现错误。

if ($this->request->getData('import.name')) {



Cannot use object of type Laminas\Diactoros\UploadedFile as array

我应该如何检查文件是否已上传。请注意它没有附加到模型,我不想添加验证,只需检查控制器即可。

首先检查是否为上传的文件对象,如有必要,再检查其错误状态。

您不必手动发出类型检查,您可以使用 getUploadedFile() 来代替,它将为您完成,如果给定键的数据是 return null '\Laminas\Diactoros\UploadedFile 的实例,因此它看起来类似于:

$upload = $this->request->getUploadedFile('import');
if (
    $upload !== null &&
    $upload->getError() !== \UPLOAD_ERR_NO_FILE
) {
    // a file was uploaded, continue with checks whether the upload was successful/valid
} else {
    // no file was uploaded
}

另见