2016-06-09 83 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()