多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 文件上传 MixPHP 的文件上传类只用于处理已经上传的文件,而对上传文件的各种限制可在 “验证器” 完成的。 ## 组件 使用 [composer]([https://www.phpcomposer.com/](https://www.phpcomposer.com/)) 安装: ~~~ composer require mix/http-message ~~~ ## 获取上传的文件 - 通过 Request 对象直接获: ``` $file = $request->getUploadedFiles()[$name] ?? null; if ($file) { $file->moveTo($targetPath); } ``` - 通过验证器验证后,自动实例化为表单类的属性 >[info] 通常情况下都会使用该方法,因为文件都需经过验证 表单验证器源码: [>> FileForm::class <<](https://github.com/mix-php/mix-skeleton/blob/master/app/Api/Forms/FileForm.php) 通过表单验证器保存文件: ~~~ // 使用表单验证器 $form = new FileForm($request->getAttributes(), $request->getUploadedFiles()); $form->setScenario('upload'); if (!$form->validate()) { $content = ['code' => 1, 'message' => 'FAILED', 'data' => $form->getErrors()]; return SendHelper::json($response, $content); } // 保存文件 if ($form->file) { $targetPath = app()->basePath . '/runtime/uploads/' . date('Ymd') . '/' . $form->file->getClientFilename(); $form->file->moveTo($targetPath); } ~~~