Validation 使用mimetypes文件验证时yii unsecure属性
我使用以下mime类型文件验证Validation 使用mimetypes文件验证时yii unsecure属性,validation,file-upload,yii,mime-types,runtime-error,Validation,File Upload,Yii,Mime Types,Runtime Error,我使用以下mime类型文件验证 array('image', 'file', 'allowEmpty' => true,'mimeTypes'=>'image/gif, image/jpeg, image/jpg, image/png', 'on' => 'update') 如果一个文件没有正确的mime类型,那么它可以很好地工作。 但是,如果验证成功,logg将 2012/09/27 17:13:02 [warning] [application] unsafe Attr
array('image', 'file', 'allowEmpty' => true,'mimeTypes'=>'image/gif, image/jpeg, image/jpg, image/png', 'on' => 'update')
如果一个文件没有正确的mime类型,那么它可以很好地工作。
但是,如果验证成功,logg将
2012/09/27 17:13:02 [warning] [application] unsafe Attribut "image" couldnt be set.
但它被明确宣布为save
array('image', 'safe', 'on' => 'update')
这就是为什么我会收到这样的错误
finfo_file(C:\xampp\tmp\php3729.tmp): failed to open stream: No such file or directory
$mimeType=finfo_file($info,$file->getTempName());
if (isset($_POST['User'])) {
$user->attributes = $_POST['User'];
$user->image = CUploadedFile::getInstance($user, 'image');
if ($user->validate()) {
似乎无法保存该文件,因为它具有不安全属性。
奇怪的是,如果我用mimeTypes check取消对验证规则的注释,那么一切都可以正常工作
在我的控制器中,我像这样设置图像文件
finfo_file(C:\xampp\tmp\php3729.tmp): failed to open stream: No such file or directory
$mimeType=finfo_file($info,$file->getTempName());
if (isset($_POST['User'])) {
$user->attributes = $_POST['User'];
$user->image = CUploadedFile::getInstance($user, 'image');
if ($user->validate()) {
我相信您在保存整个模型之前运行了$user->image->saveAs$path,这就是为什么它试图验证临时文件夹中的文件,而该文件已经移动到$path。
所以,在保存模型后,使用$user->validate或运行saveAs$path