MV framework logo
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Документация
Скачать .zip версия 3.2.0 от 25.12.2024
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
Документация
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
MV tracker

Удаление файлов

Ответов: 5
Вадим
28.01.2025 20:47

При очистке в админке поля типа "файл" значение поля в БД очищается, но непосредственно файл остается храниться на файловой системе.

Из-за этого размер папки userfiles будет необосновано разростаться.

Как сделать чтобы при очистке значения поля, файл тоже удалялся?

protected $model_elements = [
       // Речь о вот таком поле.
        ['Векторная Иконка', 'image', 'image', 
            [
                'required' => true, 
                'allowed_extensions' => ['svg'],
                'max_size' => 500000
            ]
        ]
    ];
Прочтений: 731
Ответов: 5
Maxim
29.01.2025 15:47

Напишите пожалуйста подробнее как вы очищаете файловое поле в в админке?

Дело в том что когда запись редактируется в админке, то сохраняется история изменений в таблицу versions.

Когда же вы удаляете запись из моделей через админку то она вначале помещается в корзину а уже после удаления из корзины удаляется окончательно и далее удаляются все ее версии и файлы которые были к ней прикреплены.

Вадим
30.01.2025 22:00

Максим, вот скриншот с подробностями.
https://www.imagebam.com/view/MEZB4TN

Целиком запись (строку, экземпляр модели) я не удаляю.
Я удаляю через админку лишь изображение (значение поля) и загружаю изображение снова.

Я сделал это 9 раз и вот у меня на файловой 9 изображений, 8 из которых неактуальны.

Это при том что количество хранимых версий выставлено в значение 5.

Хотелось-бы чтобы ненужные файлы удалялись и не занимали место.

Вадим
30.01.2025 22:11

Пробовал отключать историю изменений вовсе.
Но файл всё равно не удаляется при замене на новый.

'ModelVersionsLimit' => false,
Maxim
31.01.2025 16:06

Тогда попробуйте воспользоваться событием beforeUpdate пример тут https://mv-framework.ru/nastroika-modeli
В нем можно сравнить старое и новое значение файлового поля и потом удалить файл.

Вам понадобится файловый корень, как его получить есть пример здесь https://mv-framework.ru/sistemnye-nastroiki

Вадим
11.02.2025 04:30

Спасибо.
Попробую.

Ответить на вопрос
Ответить
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться