O C*_*nor 14 php file-upload yii2
遵循Yii Framework 2.0文档http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html我试图上传图片.图像可以成功上传,但在上传图像后,我尝试使用以下代码将模型插入数据库.
$model->file->saveAs('uploads/' . $model->file->baseName . '.' . $model->file->extension);
$model->save();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
PHP Warning – yii\base\ErrorException
finfo_file(/tmp/phpIGuwiT): failed to open stream: No such file or directory
1. in /var/www/html/website/advanced/vendor/yiisoft/yii2/helpers/BaseFileHelper.php
if ($info) {
$result = finfo_file($info, $file);
finfo_close($info);
if ($result !== false) {
return $result;
}
}
2. in /var/www/html/my-project/advanced/vendor/yiisoft/yii2/validators/FileValidator.php – yii\helpers\BaseFileHelper::getMimeType()
$mimeType = FileHelper::getMimeType($file->tempName, null, false);
3.
4.
and so on ....
Run Code Online (Sandbox Code Playgroud)
结果是图像已上载但模型尚未插入数据库.有谁知道如何解决这个问题?
小智 12
我遇到了完全相同的问题,我通过电话解决了这个问题
$model->save();
Run Code Online (Sandbox Code Playgroud)
之前
$model->file->saveAs()
Run Code Online (Sandbox Code Playgroud)
我不知道你的模型是怎样的,但如果你只是将实际文件保存在服务器上,而只保存数据库中图像的路径,它应该可以工作.
我认为当模型 - > save之前调用file-> saveAs()时,模型验证失败,因为'file'不再包含上传的数据(它已经保存为......).希望它有意义.
小智 9
$model->file->saveAs();
//try delete imageFile file variable before save model
$model->imageFile = null;
$model->save();
Run Code Online (Sandbox Code Playgroud)
小智 5
我有同样的问题,我解决了这个问题.
$model->file->saveAs($filepath , false)
然后
$model->save(false)
重要:在saveAs函数传递False参数中.