我想将要上传的文件的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
}
}
这只是一个理论上的解决方案,试图使其适应您的需求.