Перейти к содержимому
Русский язык для Invision Community 5

Uploads почистить

Здравствуйте

Прошу помочь мне с таким вопросом...

Поиском не нашел...

IPB 4, официальная.

Помнится в старых версия можно было удалить вложения, которые не прикреплены к сообщениям. В админке была такая функция.. В 4 версии этого нету.

В связи с тем, что пришлось восстанавливать uploads, там сейчас находится много лишних файлов.

Как бы их по удалять ....

Рекомендованные сообщения

Файлы где находятся, в корне?

  • Автор

В uploads и затем папки по месяцам... думаю в uploads/ тоже есть лишнего

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

Функция запускается кнопкой в System -> Files -> Remove Orphaned Files, но она временно отключена в связи с необходимостью ее доработки.

 

Для удаления бессвязных аттачей выполнить в корне форума следующий скрипт:

 

require_once 'init.php';
\IPS\Dispatcher\Front::i();

$engine = \IPS\Application::allExtensions( 'core', 'FileStorage', FALSE )['core_Attachment'];
$dir    = 'uploads';

if ( is_dir( $dir ) )
{
$iterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator( $dir, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::UNIX_PATHS ) );

foreach( $iterator as $f )
{
	/* We aren't checking directories */
	if( $f->isDir() OR $f->getFilename() == 'index.html' OR mb_substr( $f->getFilename(), 0, 1 ) === '.' OR mb_substr( $iterator->getSubPathname(), 0, 5 ) === 'logs/' )
	{
		continue;
	}

	if( ! preg_match( '/^monthly_(\d+)_(\d+)\//', $iterator->getSubPathname() ) )
	{
		continue;
	}

	try
	{
		if( $engine->isValidFile( $iterator->getSubPathname() ) )
		{
			continue;
		}
	}
	catch( \InvalidArgumentException $e )
	{
		continue;
	}

	@unlink( $f->getPathName() );
	echo "Deleted {$f->getPathName()}<br>\n";
}
}

  • 8 месяцев спустя...

Создал файл php в корне с содержимым, но не запускает (вылазит в браузере код), и через ссш аналогично.

Как правильно запустить скрипт? и есть ли возможность сделать перерасчет уже существующих вложений, то есть 3 папки по 4 гига, которые освободить нужно)

но она временно отключена в связи с необходимостью ее доработки.
Она уже 2 года отключена, все никак не доработают
Создал файл php в корне с содержимым

 

А тег <?php не забыл?

Спасибо, добавил, но эффекта не дало.

\IPS\Dispatcher\Front::i();

заменить на

\IPS\Dispatcher\External::i();

Спасибо! Отлично обработало, но зацепило аватарки многим, удалило все вложения с галереи.

Подняли бэкап

Изменено пользователем Атаман

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.