Вы здесь

Как удалить файлы при программном удалении нод?

0
  1. При программном удалении нод не все файлы-картинки (из полей) удаляются, почему?
  2. Как программно почистить директорию от всех файлов.
Версия Drupal: 
7.x
Категория: 
File API
Вопрос задан 06.11.2015 - 16:24
Аватар пользователя Artu
Artu
24

Скажите, а что происходит с записью из таблицы file_managed, где хранятся эти файлы ?
Запись при этом удаляется или просто помечается на удаление ?

Комментарий оставлен 07.11.2015 - 08:24

не все удаляются

А часть удаляется?

Комментарий оставлен 07.11.2015 - 11:40

Та часть которая через через интерфейс удалена.)

Комментарий оставлен 09.11.2015 - 11:40

roman-yakimkin, да, записи про файлы остаются в этой таблице.

Комментарий оставлен 09.11.2015 - 11:41

Ответы

0

Мне помог этот метод:

$node_wrapper = entity_metadata_wrapper('node', $node);
$node_wrapper->field_YOUR_ANY_FIELD->set(null);
$node_wrapper->save();

И файлы и записи из таблицы удаляет. Одна строчка для множественного поля.
Правда медленновато.

Ответ дан 09.11.2015 - 11:55
Аватар пользователя Artu
Artu
24
0

просто подождите, файлы будут удалены и физически через некоторое время
насколько я понимаю, все дело во втором параметре функции file_delete, который по-умолчанию указан как FALSE

Ответ дан 07.11.2015 - 12:19

В том то и вопрос.
Что node_delete не вызывает file_delete?

Нужно самому делать это для каждого файла поля?

Да,ручной вызов file_delete(fid,TRUE) помогает.

Комментарий оставлен 09.11.2015 - 11:39