symfony – 如何在OneupUploaderBundle中设置max_size?

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

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

我已经看到了问题#92,似乎我的配置中有一个额外的单词映射.有什么不对的吗??

谢谢

最佳答案 我会建议另一种方法,因为这样做对我来说也不起作用.


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
}
}

这只是一个理论上的解决方案,试图使其适应您的需求.

点赞