api - 如何使用从 API 上传的 Yii2 getInstancesByName 验证文件?
问题描述
我正在开发一个移动应用程序,Yii2 用作后端 API,我无法验证上传的文件的问题,知道我该怎么做吗?
public static function uploadPicture ($vid) {
$model = new Pictures ();
$model->load(\Yii::$app->getRequest()->getBodyParams(), '');
$model->vid_image = \yii\web\UploadedFile::getInstancesByName('vid_image');
$imageDir = Yii::$app->params[ 'uploadDir' ];
//if ( $model->validate() AND !empty($model->vid_image) ) { //does not work
if ( !empty($model->vid_image) ) {
foreach ( $model->vid_image as $images => $image) {
$model->name = "t_" . time() . "_i_" . uniqid() . '.' . $image->extension;
$model->vid = $vid;
echo $image->hasError;//return empty
//Yii::$app->end();
//if ( $model->save() and $model->validate() ) { // does not work
if(1==1 and $model->validate()){ // $model->validate() always empty!!!
$image->saveAs($imageDir . '/' . $model->name);
Yii::$app->getResponse()->setStatusCode(201);
$id = implode(',', array_values($model->getPrimaryKey(true)));
Yii::info("[pic.21] image: " . $model->name . " uploaded to: " . $imageDir, __METHOD__);
} elseif ( $model->hasErrors() ) {
$response = \Yii::$app->getResponse();
$response->setStatusCode(500);
throw new ServerErrorHttpException('Failed to create the object for unknown reason. [APIx001]');
}
}
}
return $model;
}
文件未经验证上传。
谢谢,
解决方案
推荐阅读
- homebrew - gurgle 可以在 Homebrew 上使用吗?
- javascript - 根据 Material UI 中的用户输入使 TextField 错误为真
- python-3.x - Python 导入函数而不执行脚本
- vb.net - 为什么在 StartupForm 更改后 Form2 中没有收到来自 Form3 的输入
- azure-sql-database - Azure SQL 托管实例
- python - Python 从导入 csv 列表中获取 url 的标头状态代码并打印
- r - 查找组合数
- javascript - Javascript/JQuery 多个滑块一页
- c# - 另一个关于 Unity 自上而下运动导致错误的愚蠢问题
- python - Pycharm 类型检查器 - 预期系列,得到 int