Vichuploaderbundle: Как удалить файл (не удалять объект сущности и не перезаписывать другим файлом)?

Созданный на 16 окт. 2014  ·  6Комментарии  ·  Источник: dustin10/VichUploaderBundle

Привет,

Я пытаюсь понять, как просто удалить файл, прикрепленный к объекту. Я не хочу удалять весь объект сущности и не хочу заменять файл другим файлом. Просто удалите файл. Я просмотрел документацию и попробовал Google, но не нашел ничего полезного. Я также попытался установить для файловой переменной объекта сущности значение NULL и сохранить сущность. Но это не привело к удалению физического файла.

Любые подсказки приветствуются.

Лучший,
Андреас

Самый полезный комментарий

Я считаю, что такое поведение, заключающееся в том, что физический файл не удаляется, когда файловая переменная объекта сущности имеет значение null, скорее является ошибкой или отсутствующей функцией. Я думаю, что с

delete_on_update: true

установка переменной в значение null должна быть зафиксирована слушателем, а файл должен быть удален автоматически.

Все 6 Комментарий

Я разместил слишком быстро. Я решил это с помощью следующего кода:

$this->get('vich_uploader.storage')->remove($entity, 'file_mapping');
$entity->setFile(null);
$entity->setFileName(null);

Затем следует сохранение сущности.

Тогда закрываю этот вопрос :)

Я считаю, что такое поведение, заключающееся в том, что физический файл не удаляется, когда файловая переменная объекта сущности имеет значение null, скорее является ошибкой или отсутствующей функцией. Я думаю, что с

delete_on_update: true

установка переменной в значение null должна быть зафиксирована слушателем, а файл должен быть удален автоматически.

Об этом нужно упомянуть где-нибудь в документации :-)

Пакет усовершенствован, и теперь правильный способ удаления файла "вручную": $this->get('vich_uploader.upload_handler')->remove($entity, 'fieldName');

Инъекция vich_uploader.upload_handler нарушает абстракцию. Пожалуйста, подумайте о реализации этого:

установка переменной в значение null должна быть зафиксирована слушателем, а файл должен быть удален автоматически.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги