Возникла необходимость посчитать размер файлов вложений по полям типа Поле для загрузки изображения или Поле для загрузки файла.
Желательно записывать размер файла в отдельное поле что бы потом посчитать какое количество Мб пользователь загрузил.
Кто ни будь делал такое? Поделитесь решением )
Размер вложений
- mailarn
- Инвестор

- Сообщения: 169
- Зарегистрирован: 18 июн 2021, 10:33
- Имя: Антон
- Откуда: Екатеринбург
- Контактная информация:
Размер вложений
Создание отраслевых решений на базе CRM Руководитель https://webuscrm.ru
- Fait
- Инвестор

- Сообщения: 1197
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
- Контактная информация:
Re: Размер вложений
Да, конечно можно)mailarn писал(а): 30 сен 2024, 20:24 Возникла необходимость посчитать размер файлов вложений по полям типа Поле для загрузки изображения или Поле для загрузки файла.
Желательно записывать размер файла в отдельное поле что бы потом посчитать какое количество Мб пользователь загрузил.
Кто ни будь делал такое? Поделитесь решением )
Вот код на PHP, он считает размер вложений во вложенной сущности:
Код: Выделить всё
$item_id = [id];
// 55 - сущность, в которой находятся записи с файлами
$check_files = db_query('select * from app_entity_55 where parent_item_id='.$item_id);
foreach ($check_files as $key => $value) {
$files = $value['field_777']; // ID поля, куда пользователь загружает файлы
$files_arr = explode(',',$files); // Собираем в отдельный массив имена файлов (для поля Вложения, где можно загрузить сразу несколько файлов)
if ($files != '') {
foreach ($files_arr as $key => $value) { // Перебираем массив
$file_x = attachments::parse_filename($value); // Запрашиваем данные
if (is_file($file_x['file_path'])) { // Если файл существует на сервере, то определяем его размер
$size = strlen(file_get_contents($file_x['file_path'])) / 1048576; // 1048576 - столько байт в 1 МБ
$total_size += $size; // Суммируем размер
}
}
}
}
$output_value = 'Размер вложений: '.number_format($total_size,2,',',' ').' MB'; // Great!!- Fait
- Инвестор

- Сообщения: 1197
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
- Контактная информация:
Re: Размер вложений
А вот код на PHP, который считает размер вложений в текущей сущности:
Код: Выделить всё
$files = [777]; // ID поля, куда пользователь загружает файлы
$files_arr = explode(',',$files); // Собираем в отдельный массив имена файлов (для поля Вложения, где можно загрузить сразу несколько файлов)
if ($files != '') {
foreach ($files_arr as $key => $value) { // Перебираем массив
$file_x = attachments::parse_filename($value); // Запрашиваем данные
if (is_file($file_x['file_path'])) { // Если файл существует на сервере, то определяем его размер
$size = strlen(file_get_contents($file_x['file_path'])) / 1048576; // 1048576 - столько байт в 1 МБ
$total_size += $size; // Суммируем размер
}
}
}
$output_value = 'Размер вложений: '.number_format($total_size,2,',',' ').' MB'; // Great!!- mailarn
- Инвестор

- Сообщения: 169
- Зарегистрирован: 18 июн 2021, 10:33
- Имя: Антон
- Откуда: Екатеринбург
- Контактная информация:
Re: Размер вложений
Супер, спасибо )
Создание отраслевых решений на базе CRM Руководитель https://webuscrm.ru
-
Алексей Алейников
- Сообщения: 44
- Зарегистрирован: 13 июн 2018, 20:15
- Имя: Алексей Алейников
- Откуда: Москва
- Организация: 9-33
- Контактная информация:
Re: Размер вложений
Не получается подсчитать количество файлов.
Кто-то может поделиться решением?
И такой вопрос - если используется PHP в Конструкторе отчётов, поля подгруженных документов будут из id поля или id столбца отчета?
Заранее благодарю за ответ.
Кто-то может поделиться решением?
И такой вопрос - если используется PHP в Конструкторе отчётов, поля подгруженных документов будут из id поля или id столбца отчета?
Заранее благодарю за ответ.
9-33.ru
- Fait
- Инвестор

- Сообщения: 1197
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
- Контактная информация:
Re: Размер вложений
Вот код для подсчёта количества файлов:Алексей Алейников писал(а): 30 дек 2024, 03:30 Не получается подсчитать количество файлов.
Кто-то может поделиться решением?
И такой вопрос - если используется PHP в Конструкторе отчётов, поля подгруженных документов будут из id поля или id столбца отчета?
Заранее благодарю за ответ.
Код: Выделить всё
$files = [777]; // ID поля, куда пользователь загружает файлы
$files_arr = explode(',',$files); // Собираем отдельный массив
if ($files != '') {
foreach ($files_arr as $key => $value) { // Перебираем массив
$file_x = attachments::parse_filename($value); // Запрашиваем данные
$total_kol++; // Суммируем количество всех файлов
if (is_file($file_x['file_path'])) { // Если файл существует на сервере, то определяем его размер
$total_exists_kol++; // Суммируем количество существующих файлов
}
}
}
$output_value = 'Количество файлов: '.number_format($total_kol,0,',',' ').' шт., из них на сервере '.number_format($total_exists_kol,0,',',' ').' шт.'; // Great!!- Antonyous99
- Сообщения: 752
- Зарегистрирован: 18 авг 2019, 09:22
- Имя: Антон Владимирович
- Откуда: Санкт-Петербург
- Организация: ООО "РИКОМ-Сервис"
- Контактная информация:
Re: Размер вложений
В Контструкторе отчетов вы самостоятельно выбираете поля для вывода.Алексей Алейников писал(а): 30 дек 2024, 03:30 И такой вопрос - если используется PHP в Конструкторе отчётов, поля подгруженных документов будут из id поля или id столбца отчета?
В Конструкторе можно использовать только MySQL запросы или вместе с PHP.
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
ERP/CRM "под ключ"