Posted 30 июля, 20213 yr comment_170887 Здравствуйте. В админке есть параметр задающий квоту на общий вес контента в одном сообщении (размер в килобайтах). Например на группу Members задана квота в 10 мб (на пост). Это значит, что участник этой группы может в одном сообщении прикрепить 10 файлов по 1мб или 1 файл весом в 10 мб. С этим понятно. Но! Как сделать ограничение на вес каждого файла? Чтобы человек не мог прикрепить файл (любой) весом более 1мб, но при этом мог загрузить сколько угодно файлов до 1мб в один пост. Есть ли хук, плагин или настройках внутри кода где-то?
31 июля, 20213 yr comment_170895 Поставьте группе безлимитный общий объем дискового пространства, и ограничьте ему максимальный объем дискового пространства на единицу контента. Это все есть в настройках группы, в разделе Контент.
31 июля, 20213 yr Author comment_170896 36 минут назад, ryancoolround сказал: и ограничьте ему максимальный объем дискового пространства на единицу контента. Но это не работает. Если я поставлю ограничение на единицу контента, например, 500кб, то человек не сможет загрузить в одно сообщение несколько файлов размером по 450кб, так как общий их вес будет превышать 500к. Вот пример установки параметров: А вот ошибка, которая выдается, если попытаться превысить лимит: Мне нужно, чтобы человек не мог загрузить файл весом более 500кб, но при этом он мог в одно сообщение загрузить сколько угодно файлов до 500кб.
17 августа, 20213 yr Author comment_171627 Опытные программисты подсказали решение. Оказывается в движке уже есть этот функционал, но он был отключен. Чтобы его снова включить нужно в FTP найти файл /system/Helpers/Form/Upload.php Затем в этом файле найти условие: if ( $maxChunkSize = static::maxChunkSize() ) { $this->maxChunkSize = $maxChunkSize / 1048576; } И заменить его на: if ( $maxChunkSize = static::maxChunkSize() ) { $this->maxChunkSize = $maxChunkSize / 1048576; $options['maxFileSize'] = 0.5; } Цифра 0.5 означает 500кб. Таким образом никто не сможет загрузить каждый конкретный файл весом более 500кб. Если нужно, чтобы Администраторы могли загружать файлы любого веса, а ограничения действовали только для обычных пользователей, то тогда заменить код на этот: if ( $maxChunkSize = static::maxChunkSize() ) { $this->maxChunkSize = $maxChunkSize / 1048576; $options['maxFileSize'] = 0.5;/* стандартный вес файла*/ if (\IPS\Member::loggedIn()->member_group_id === 4){ $options['maxFileSize'] = 10;/*привелегия для группы админов*/ } } Цифра 4 - это номер Группы. А цифра 10 - это ограничение для Админов. Надеюсь кому-нибудь пригодиться. 🙂
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.