Не проверено!!!!!!!!!!!!!ОСОБЫЙ СЛУЧАЙ С ОШИБКОЙ «ДОСТИГНУТ МАКСИМАЛЬНЫЙ ОБЩИЙ РАЗМЕР ВАШИХ ВЛОЖЕНИЙ»А вот теперь моя история. Форум на phpBB несколько раз менял хостера. И в какой-то момент потребовалось резко сократить объем вложений, не удаляя их. Поэтому залитые на форум фотографии по 3-5 мегабайт были пережаты до «божеских» 100-250 килобайт. И форум продолжил жить своей жизнью.
И вот сегодня посыпались сообщения о «Достигнут максимальный общий размер ваших вложений». Хотя проверка через ftp и шелл потверждала, что объем файлов вложений составлял меньше половины квоты.
Проблема заключалась в тех самых «ужатых» файлах. Движок форума
phpBB
не пересчитывает объем каждого файла, считая его фиксированным (логично, экономит процессорное время). Поэтому в базе параметр «Размер всех вложений» достиг значения квоты и форум отказывал в добавлении новых вложений, не смотря на наличие свободного места.
Чтобы решить эту проблему, надо на форум установить дополнительную админку
Support Toolkit
и немного его доработать (у меня была версия 1.0.3, последняя на тот момент).
В файле
stk/tools/admin/resync_attachments.php
найти следующий код
- Код: выделить все
foreach ($batch as $row)
{
// Does the file still exists?
$path = PHPBB_ROOT_PATH . $config['upload_path'] . "/{$row['physical_filename']}";
if (file_exists($path))
{
// Yes, next please!
continue;
}
$delete_ids[] = $row['attach_id'];
}
и заменить его на этот
- Код: выделить все
foreach ($batch as $row)
{
// Does the file still exists?
$path = PHPBB_ROOT_PATH . $config['upload_path'] . "/{$row['physical_filename']}";
if (file_exists($path))
{
$fsize = filesize( $path );
if ( $fsize != $row['filesize'] )
{
$db->sql_query('UPDATE ' . ATTACHMENTS_TABLE . ' SET filesize = ' . $fsize . ' WHERE attach_id = ' . $row['attach_id'] );
}
// Yes, next please!
continue;
}
$delete_ids[] = $row['attach_id'];
}
Найти -
- Код: выделить все
$sql = 'SELECT attach_id, physical_filename
Заменить на -
- Код: выделить все
$sql = 'SELECT attach_id, physical_filename, filesize
Зайти в админку
Support ToolKit
, перейти
«Admin Tools» -> «Resynchronise attachments»
. Дождаться окончания синхронизации вложений. Зайти на основную админку форума phpBB и выполнить «Синхронизировать статистику». После чего размеры файлов будут соответствовать действительности и можно будет добавлять новые вложения.