Skip to content

Uploads почистить

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

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

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

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

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

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

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

Featured Replies

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

  • Author

В 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 months later...

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

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

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

 

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

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

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

заменить на

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

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

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

Edited by Атаман

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.