2016-06-09 125 views
0

我已經創建了正常的Symfony表單。不過,我需要通過AJAX處理的其他文件(照片,證書),而不是通過Symfony表單檢索。 相反,文件上傳是通過文件包在單獨的控制器操作中處理的。Symfony 2:AJAX文件上傳文件約束

我想限制最大文件大小(僅適用於此操作)。 如果上傳是由經典形式處理,我會使用file constraint 但這種方式我現在不怎麼應用它。

我通過UploadedFile上的方法檢查MIME類型併成功上傳,但檢索大小的方法的文檔是令人沮喪的(UploadedFile#method_getClientSize)。

有沒有辦法如何使用FileValidator/File約束沒有形式?

回答

0

我有啓發,實際執行FileValidator的:

$file = $request->files->get('file'); 
$path = $file->getPathname(); 
$size = round(filesize($path)/1000000, 2); 
$limit = (int) $constraint->maxSize; 

if ($size > $limit) { 
    //Add violation 
} 

此解決方案,並可能會更好,然後使用getClientSize()