我想将要上传的文件的max_size设置为2m。我有下面的配置,但它仍然上传甚至4m文件...
oneup_uploader:
mappings:
motors:
frontend: blueimp
enable_progress: true
max_size: 2m
我已经看到了问题#92,似乎我的配置中有一个额外的词mappings
。有什么问题吗?
由于
答案 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
}
}
这只是一个理论上的解决方案,可以根据您的需求进行调整。