Commit a2e73f99 by Qiang Xue

Fixes #4370: fileinfo extension is required for FileValidator.

parent a612b492
...@@ -14,6 +14,8 @@ use yii\helpers\FileHelper; ...@@ -14,6 +14,8 @@ use yii\helpers\FileHelper;
/** /**
* FileValidator verifies if an attribute is receiving a valid uploaded file. * FileValidator verifies if an attribute is receiving a valid uploaded file.
* *
* Note that you should enable `fileinfo` PHP extension.
*
* @property integer $sizeLimit The size limit for uploaded files. This property is read-only. * @property integer $sizeLimit The size limit for uploaded files. This property is read-only.
* *
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
...@@ -213,7 +215,7 @@ class FileValidator extends Validator ...@@ -213,7 +215,7 @@ class FileValidator extends Validator
return [$this->tooSmall, ['file' => $file->name, 'limit' => $this->minSize]]; return [$this->tooSmall, ['file' => $file->name, 'limit' => $this->minSize]];
} elseif (!empty($this->extensions) && !$this->validateExtension($file)) { } elseif (!empty($this->extensions) && !$this->validateExtension($file)) {
return [$this->wrongExtension, ['file' => $file->name, 'extensions' => implode(', ', $this->extensions)]]; return [$this->wrongExtension, ['file' => $file->name, 'extensions' => implode(', ', $this->extensions)]];
} elseif (!empty($this->mimeTypes) && !in_array(FileHelper::getMimeType($file->tempName), $this->mimeTypes, true)) { } elseif (!empty($this->mimeTypes) && !in_array(FileHelper::getMimeType($file->tempName), $this->mimeTypes, false)) {
return [$this->wrongMimeType, ['file' => $file->name, 'mimeTypes' => implode(', ', $this->mimeTypes)]]; return [$this->wrongMimeType, ['file' => $file->name, 'mimeTypes' => implode(', ', $this->mimeTypes)]];
} else { } else {
return null; return null;
...@@ -306,7 +308,7 @@ class FileValidator extends Validator ...@@ -306,7 +308,7 @@ class FileValidator extends Validator
if ($this->checkExtensionByMimeType) { if ($this->checkExtensionByMimeType) {
$mimeType = FileHelper::getMimeType($file->tempName); $mimeType = FileHelper::getMimeType($file->tempName, null, false);
if ($mimeType === null) { if ($mimeType === null) {
return false; return false;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment