2011-05-04 93 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

相關問題