如何在OneupUploaderBundle中设置max_size?

时间:2014-11-19 03:51:55

标签: symfony oneupuploaderbundle

我想将要上传的文件的max_size设置为2m。我有下面的配置,但它仍然上传甚至4m文件...

oneup_uploader:
    mappings:
        motors:
            frontend: blueimp 
            enable_progress: true 
            max_size: 2m

我已经看到了问题#92,似乎我的配置中有一个额外的词mappings。有什么问题吗?

由于

1 个答案:

答案 0 :(得分:2)

我会建议另一种方法,因为这样做对我来说也没有用。 使用event listeners执行此操作:

// Resources/services.yml
yourbundle.oneuploadvalidatorlistener:
    class: Amine\yourBundle\EventListener\oneupValidator
    arguments: [%your_own_defined_maxBytes%]
    tags:
       - { name: kernel.event_listener, event: oneup_uploader.validation, method: onValidate }

请注意,如果您有多个上传者并且想要定位其中一个,那么您可以在中间添加它,例如oneup_uploader.motors.validation(我非常确定这样对我有用)

然后只需创建EventListener类:

namespace Amine\yourBundle\EventListener;
class oneupValidator {
private $max_size;

function __construct($max_size) {
   $this->max_size =$max_size;
}
function onValidate(ValidationEvent $event) {
    $file = $event->getFile();
// Do your logic here to check the size, and throw an exception if it does not validate 
    new ValidationException('error.max_size'); //Or your own error message
}
}

这只是一个理论上的解决方案,可以根据您的需求进行调整。