ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (2): [1] 2 »   

> Без описания
1Bot
Отправлено: 22 октября 2009 — 19:14
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Необходима утилита для осмысленного удаления файлов из папки UPLOADS, т.е. чтобы можно было определить к какому сообщению принадлежит файл и может удалить вместе/или без сообщения (исправить сообщение, чтобы не было ссылки на файл)

Обсуждалось здесь
 
 
M-A-X
Отправлено: 16 ноября 2009 — 01:43
Post Id


Пользователь
Advanced Member


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2009  
Откуда: Киев
Репутация: 10




Нужна версия с БД.
Там можно запросик сделать Улыбка
 
 
1Bot
Отправлено: 3 октября 2011 — 17:49
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




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

upload-list.php
CODE:
<?php
/**************************************************************************
Поиск файлов в папке uploads форума ExBB FM 1.0 RC1, которые не связаны
с сообщениями в темах

(c) 1Bot aka Strobe, 2011
**************************************************************************/

echo <<<DATA
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=win1251">
<meta http-equiv="Content-Language" content="ru">
</head>
<body>
DATA;


// 1. пройти по всем форумам и считать имена файлов вложений
$linkfiles = array();
$reflink = array();
$df = @opendir('.');
if ($df) {
while(false !== ($f = readdir($df))) {
if ('.' == $f | '..' == $f | !is_dir($f) | 'FORUM' !== strtoupper(substr($f,0,5))) continue;
// $f - папка форума
$dt = @opendir($f);
if ($dt) {
while (false !== ($t = readdir($dt))) {
if (is_dir($t) | 'THD.PHP' !== strtoupper(substr($t,-7,7))) continue;
// $t - файл темы
$t_attach = 'ATTACHES-'.substr($t,0,strlen($t)-8).'.PHP';
if (file_exists($t_a = "./$f/$t_attach")) { // у темы есть прикрепленные файлы
$fp = @fopen($t_a,'r')
or die("Could not read from the file <b>$t_a</b>");
flock($fp, 1);
$filesize = filesize($t_a);
$filesize = (0 === $filesize) ? 1:$filesize-8;
fseek($fp,8);
$str = fread($fp,$filesize);
flock($fp, 3);
fclose($fp);
$str = unserialize($str);

foreach ($str as $k => $v) {
$s = array(
'hits' => $v['hits'],
'size' => $v['size'],
'type' => $v['type'],
'file' => $v['file'],
'topic' => $f.'/'.$t);
$reflink[$v['id']] = $s;
$linkfiles[] = $v['id']; // имя прикрепленного файла в папке uploads
}

unset($str);
}
}
closedir($dt);
}
}
closedir($df);
}


// 2. считать список файлов из uploads
$upfiles = array();
$d = @opendir('uploads');
if ($d) {
while (false !== ($e = readdir($d))) {
if ($e == 'index.html' | is_dir($e)) continue;
$upfiles[] = $e;
}
closedir($d);
}


// 3. вывод имен несвязанных с сообщениями файлов
$count = 0;
$size = 0;
echo "<h2>Losted files</h2>\n";
echo "<table border=1 cellpadding=10>\n";
echo "<tr><th>Filename</th><th>Size (bytes)</th><th>Image</th></tr>\n";
foreach($upfiles as $file){
if (!in_array($file, $linkfiles)) {
$filesize = filesize("./uploads/$file");
echo "<tr><td>$file</td><td>$filesize</td><td>&nbsp;";
if ('.EXT' !== strtoupper(substr($file,-4,4))) { // картинка
echo "<img src='./uploads/$file'>";
}
echo "</td></tr>\n";
$size += $filesize;
$count++;
}
}
echo "<tr><td>Total: $count file(s)</td><td>Total size: $size</td><td>&nbsp;</td></tr>\n";
echo '</table>';

echo <<<DATA
</body>
</html>
DATA;
?>
 
 
BON
Отправлено: 4 октября 2011 — 13:32
Post Id



Администратор
ExBB Team
Admin


Покинул форум
Сообщений всего: 2762
Дата рег-ции: Нояб. 2010  
Откуда: СССР/Белгород
Репутация: 72




у меня там вообще кроме индесового файла нет ничего.
1Bot, хотите сказать что есть дырка и можно залить левый файл?
 
 
1Bot
Отправлено: 4 октября 2011 — 19:44
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




BON пишет:
у меня там вообще кроме индексового файла нет ничего

Тогда Вам этот скрипт не пригодится.

BON пишет:
хотите сказать что есть дырка и можно залить левый файл?

Ситуация с лишними файлами в папке uploads скорее знакома тем, кто переходил с версий ExBB 1.9.1 на ExBB FM 1.0 RC1 - в ранних версиях иногда некоторые файлы вложений не отображались (обычно при разбиении темы пангинатором на страницы) и их приходилось дублировать для отображения => теперь их можно определить и удалить, чтобы освободить место на сервере.
 
 
roma1
Отправлено: 16 марта 2012 — 08:00
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 811
Дата рег-ции: Янв. 2011  
Откуда: СССР
Репутация: 24




хотел спросить, дело в том что удалено много тем которые не актуальны, но картинки прикреплённые средствами форума в папке аплоадс остались и сильно утяжеляют форум, я понял что при удалении темы картинка или прикрепленное фото не удаляется, папка раздута ненужными файлами, их выгребать руками дело длительное, что делать? Огорчение
 
 
yura3d
Отправлено: 16 марта 2012 — 09:12
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




roma1 пишет:
хотел спросить, дело в том что удалено много тем которые не актуальны, но картинки прикреплённые средствами форума в папке аплоадс остались и сильно утяжеляют форум, я понял что при удалении темы картинка или прикрепленное фото не удаляется, папка раздута ненужными файлами, их выгребать руками дело длительное, что делать? Огорчение

Прикреплённые файлы должны удаляться, если удаляется тема, в которую они прикреплены. Проверьте правильность расстановки прав доступа на файлы в папке uploads. Взял на контроль этот вопрос, сегодня вечером посмотрю
 
 
Леший
Отправлено: 7 апреля 2012 — 17:31
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Дек. 2011  
Репутация: 7




1Bot пишет:
Для безопасности рекомендую проверить каждому свой форум на наличие не связанных с сообщениями файлов в папке/UPLOADS.
Скрипт нужно залить в корень форума и вызвать в браузере.

upload-list.php
CODE:
<?php
/**************************************************************************
Поиск файлов в папке uploads форума ExBB FM 1.0 RC1, которые не связаны
с сообщениями в темах

(c) 1Bot aka Strobe, 2011
**************************************************************************/

echo <<<DATA
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=win1251">
<meta http-equiv="Content-Language" content="ru">
</head>
<body>
DATA;


// 1. пройти по всем форумам и считать имена файлов вложений
$linkfiles = array();
$reflink = array();
$df = @opendir('.');
if ($df) {
while(false !== ($f = readdir($df))) {
if ('.' == $f | '..' == $f | !is_dir($f) | 'FORUM' !== strtoupper(substr($f,0,5))) continue;
// $f - папка форума
$dt = @opendir($f);
if ($dt) {
while (false !== ($t = readdir($dt))) {
if (is_dir($t) | 'THD.PHP' !== strtoupper(substr($t,-7,7))) continue;
// $t - файл темы
$t_attach = 'ATTACHES-'.substr($t,0,strlen($t)-8).'.PHP';
if (file_exists($t_a = "./$f/$t_attach")) { // у темы есть прикрепленные файлы
$fp = @fopen($t_a,'r')
or die("Could not read from the file <b>$t_a</b>");
flock($fp, 1);
$filesize = filesize($t_a);
$filesize = (0 === $filesize) ? 1:$filesize-8;
fseek($fp,8);
$str = fread($fp,$filesize);
flock($fp, 3);
fclose($fp);
$str = unserialize($str);

foreach ($str as $k => $v) {
$s = array(
'hits' => $v['hits'],
'size' => $v['size'],
'type' => $v['type'],
'file' => $v['file'],
'topic' => $f.'/'.$t);
$reflink[$v['id']] = $s;
$linkfiles[] = $v['id']; // имя прикрепленного файла в папке uploads
}

unset($str);
}
}
closedir($dt);
}
}
closedir($df);
}


// 2. считать список файлов из uploads
$upfiles = array();
$d = @opendir('uploads');
if ($d) {
while (false !== ($e = readdir($d))) {
if ($e == 'index.html' | is_dir($e)) continue;
$upfiles[] = $e;
}
closedir($d);
}


// 3. вывод имен несвязанных с сообщениями файлов
$count = 0;
$size = 0;
echo "<h2>Losted files</h2>\n";
echo "<table border=1 cellpadding=10>\n";
echo "<tr><th>Filename</th><th>Size (bytes)</th><th>Image</th></tr>\n";
foreach($upfiles as $file){
if (!in_array($file, $linkfiles)) {
$filesize = filesize("./uploads/$file");
echo "<tr><td>$file</td><td>$filesize</td><td>&nbsp;";
if ('.EXT' !== strtoupper(substr($file,-4,4))) { // картинка
echo "<img src='./uploads/$file'>";
}
echo "</td></tr>\n";
$size += $filesize;
$count++;
}
}
echo "<tr><td>Total: $count file(s)</td><td>Total size: $size</td><td>&nbsp;</td></tr>\n";
echo '</table>';

echo <<<DATA
</body>
</html>
DATA;
?>
у меня всё подряд показывает. И лишние картинки,и прикрученные к сообщениям. Для поиска лишних файлов использую это:
CODE:
<?php
$listok='index.php';
if ($handle = opendir('./'))
{

echo "";
while (false !== ($file = readdir($handle)))
{
if(is_file($file))
{
if($file!=$listok and $file!='style.css')
{
print"<table align='center' style='font-size:13;font-family:Comic Sans MS;width:300;height:200;border:solid black 1;'>\n";
print"<tr><th style='width:150px;'>\n";
print"<A HREF='$file' target='blank'>\n";
print"<img src='$file' style='border:dotted 1 silver;width:150;height:130;'></a>\n";
print"</th><th>".$file."\n<br></th></tr></table>\n";
}
}
}
closedir($handle);
}
?>
загружается в саму папку uploads с именем index.php и запускается строкой сайт/uploads/index.php можно использовать в качестве галереи,удалив в таблице последнюю ячейку <th>.
 
 
Pauk
Отправлено: 8 апреля 2012 — 10:33
Post Id


Пользователь
Advanced Member


Покинул форум
Сообщений всего: 327
Дата рег-ции: Март 2009  
Репутация: 6




Леший пишет:
Для поиска лишних файлов использую это:
а как дальше определить что файл отвалившийся?
 
 
Леший
Отправлено: 8 апреля 2012 — 11:13
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Дек. 2011  
Репутация: 7




Чисто по памяти. Удалял тему с картинкой, а тут вижу что она всё ещё загружена.
 
 
Pauk
Отправлено: 8 апреля 2012 — 11:18
Post Id


Пользователь
Advanced Member


Покинул форум
Сообщений всего: 327
Дата рег-ции: Март 2009  
Репутация: 6




ок, спасибо, буду юзать... а то у меня в свое время при переходе с 0.15 на RC1 отвалилось часть фото от постов.
 
 
1Bot
Отправлено: 10 апреля 2012 — 17:26
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Леший пишет:
Чисто по памяти. Удалял тему с картинкой, а тут вижу что она всё ещё загружена.

Может на файл после его помещения в папку права доступа поменялись и он стал не удаляемый?
 
 
Леший
Отправлено: 10 апреля 2012 — 18:27
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Дек. 2011  
Репутация: 7




Фик его знает, не подумал посмотреть права.
 
 
Mishanya75
Отправлено: 27 июля 2013 — 06:05
Post Id



Пользователь
Junior Member


Покинул форум
Сообщений всего: 53
Дата рег-ции: Окт. 2011  
Откуда: Дубровиця, Ровенской, Украина
Репутация: 0




1Bot, можно ли добавить возле каждой "отвалившейся" картинки кнопку "удалить"? Так имхо удобнее будет: нашёл, увидел, удалил)))

(Отредактировано автором: 27 июля 2013 — 06:06)

 
 
1Bot
Отправлено: 29 июля 2013 — 07:51
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Mishanya75 пишет:
можно ли добавить возле каждой "отвалившейся" картинки кнопку "удалить"? Так имхо удобнее будет: нашёл, увидел, удалил

Конечно можно, но это будет потенциальная уязвимость в форуме, потому специально не добавлено удаление через форму файлов-картинок форума - только вручную.
 
 
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Утилиты и конвертеры »

> Похожие темы: Чистка папки UPLOADS
Темы Форум Информация о теме Обновление
Слетели права доступа на папки и файлы
Хостинг хад начудил.
Решение проблем Ответов: 2
Автор темы: alexx
3 апреля 2011 — 23:53
Автор: alexx
Автоочистка папки access_log
Модификации и дополнения Ответов: 0
Автор темы: altjo
4 марта 2012 — 17:00
Автор: altjo
Домен. Чистка.
Вопросы и ответы Ответов: 1
Автор темы: саня
21 сентября 2012 — 15:29
Автор: BON
Создание папки при инсталяции
После инсталяции нет папок Forum (N)
Общие вопросы Ответов: 6
Автор темы: golan
4 апреля 2012 — 22:09
Автор: golan
Какие файлы и папки сохранить для переноса?
Форум заспамили... Надеюсь на переустановку...
Установка и обновление Ответов: 31
Автор темы: DreaMinder
31 января 2010 — 14:01
Автор: DreaMinder
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0774]     [ ]