Удалить вложения " с Выбранными"

Все вопросы/проблемы по установке и использовании.
believe
Инвестор
Инвестор
Сообщения: 476
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Удалить вложения " с Выбранными"

Сообщение believe »

Коллеги, приветствую!
Есть необходимость очистить поле вложение (удалить фотки), есть у кого идея как это сделать массово (С выбранными)?
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 766
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Удалить вложения " с Выбранными"

Сообщение Fait »

believe писал(а): 09 янв 2024, 10:36 Коллеги, приветствую!
Есть необходимость очистить поле вложение (удалить фотки), есть у кого идея как это сделать массово (С выбранными)?
Можно сделать автоматизацию при удалении записи.
believe
Инвестор
Инвестор
Сообщения: 476
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Re: Удалить вложения " с Выбранными"

Сообщение believe »

Удалять записи не нужно, а нужно очищать вложения в поле записи
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 766
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Удалить вложения " с Выбранными"

Сообщение Fait »

Аа, понял!
Кстати да, хороший вопрос!
Должна же быть какая-то функция для удаления файла с сервера.

Пока что я себе представляю это всё-равно через автоматизацию с PHP скриптом.
Как получить имя и расположение файла, я знаю, но что дальше?...
Если только через PHP отправить команду на сервер для удаления файла. А затем опустошить само поле через items::update_by_id()
believe
Инвестор
Инвестор
Сообщения: 476
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Re: Удалить вложения " с Выбранными"

Сообщение believe »

Подскажи, а как получить расположение файла?
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 766
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Удалить вложения " с Выбранными"

Сообщение Fait »

believe писал(а): 10 янв 2024, 06:48 Подскажи, а как получить расположение файла?
Вот так можно получить путь к файлу, как относительный, так и полный:

Код: Выделить всё

$f = [777]; // Поле с файлом (одна штука)
$file = attachments::parse_filename($f);
if ($_SERVER['HTTPS'] == 'on') { // Определяем префикс
  $pref = 'https://';
}
else {
  $pref = 'http://';
}
$short_name = $file['file_path']; // В эту переменную записывается относительный путь к файлу
$full_name = $pref.$_SERVER['HTTP_HOST'].'/'.$file['file_path']; // В эту переменную записывается полный путь к файлу
if (is_file($short_name)) { // Проверка существования файла
  // Тут описываем действия
}
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 766
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Удалить вложения " с Выбранными"

Сообщение Fait »

А вообще, для удаления файла вот такой код можно использовать:

Код: Выделить всё

if (!unlink($short_name)) {
  echo ("Файл не может быть удалён!");
}
else {
  echo ("Файл удалён!");
}
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 766
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Удалить вложения " с Выбранными"

Сообщение Fait »

И вообще, вот итоговый код:

Код: Выделить всё

$f = [777]; // Поле с файлом (одна штука)
$file = attachments::parse_filename($f);
if ($_SERVER['HTTPS'] == 'on') { // Определяем префикс
  $pref = 'https://';
}
else {
  $pref = 'http://';
}
$short_name = $file['file_path']; // В эту переменную записывается относительный путь к файлу
$full_name = $pref.$_SERVER['HTTP_HOST'].'/'.$file['file_path']; // В эту переменную записывается полный путь к файлу
if (is_file($short_name)) { // Проверка существования файла
  unlink($short_name); // Удаляем файл
} 
Если нужно использовать $full_name, то подставляет его соответственно в команду удаления.
Последний раз редактировалось Fait 12 янв 2024, 04:01, всего редактировалось 1 раз.
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 766
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Удалить вложения " с Выбранными"

Сообщение Fait »

Итак, решил я всё-таки испробовать код у себя, и вот этот вариант работает прекрасно, и причём с удалением множества вложений:

Код: Выделить всё

$f = [777]; // Поле с файлами
$f_arr = explode(',',$f);
foreach ($f_arr as $key => $value) {
  $file = attachments::parse_filename($value);
  $link = $file['file_path']; // Путь к файлу
  if (is_file($link)) { // Проверяем существование файла
    unlink($link); // Удаляем файл
  }
}
believe
Инвестор
Инвестор
Сообщения: 476
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Re: Удалить вложения " с Выбранными"

Сообщение believe »

Проверил, работает, благодарю! Вот только оставляет файлы с 0
Вложения
Скриншот 15-01-2024 091609.jpg
Скриншот 15-01-2024 091609.jpg (33.63 КБ) 98 просмотров
Ответить