2011-05-04 81 views
1

我想阻止用户上传带有特定扩展名的文件。 想到的第一件事就是用sfValidatorRegex这样的:使用Symfony验证是否上传了文件扩展名?

$this->setValidator('name', new sfValidatorRegex(array(
    'pattern' => '/\.htaccess$/i', 
    'must_match' => false, 
))); 

但是,这是不行的,因为sfValidatorRegex :: doClean($值)得到sfValidatedFile,比Rathen市名的实例。

UPD:抱歉让你们感到困惑,我真的想要验证扩展名,而不是文件类型。

回答

1

sfValidatorFile可以通过mime_type选项通过MIME类型进行验证。它也支持mime_type类别,尽管唯一内置的是用于web图像。打开sfValidatorFile并看看!

另请注意,您不应该通过扩展验证文件类型。扩展是完全任意的。

+0

为什么不呢?例如,我想阻止用户上传带有.htaccess扩展名的文件。 – Dziamid 2011-05-04 22:30:10

+0

我可以使用扩展名为.htaccess的PNG或扩展名为PNG的htaccess文件。阻止扩展名.htaccess是可以理解的,但与文件的* type *无关。 – 2011-05-04 22:35:42

+0

你的答案可能会更清晰--mime类型和扩展名不一样,symfony在这种情况下最好。删除最后一句:) – Raise 2011-05-05 00:40:33

相关问题