airr Опубликовано 5 Марта 2009 Жалоба Поделиться Опубликовано 5 Марта 2009 Не найдена мной тема, которая ответила бы на мой вопрос. Существует ли стандартная задача, которая удаляет неприкрепленные аттачи, которая запускается периодически? И вообще, что происходит с файлами, которые были загружены, но не прикреплены? Если, например, пользователь закачал файлы и передумал создавать тему? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Be_happy Опубликовано 5 Марта 2009 Жалоба Поделиться Опубликовано 5 Марта 2009 Существует ли стандартная задача, которая удаляет неприкрепленные аттачи, которая запускается периодически? нет, есть функция которая запускается ручками для удаления атачей не имеющих связей И вообще, что происходит с файлами, которые были загружены, но не прикреплены? остаются на сервере, если не путаю. В конце концв можно потестить Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 VadimD Опубликовано 12 Марта 2009 Жалоба Поделиться Опубликовано 12 Марта 2009 Подскажите что за функция такая? Действительно файлы остаются на сервере и их потом будет сложно обнаружить. Ещё заметил, что удалив через админку аттачи пользователей, эти самые аттачи всё-равно остаются на сервере, это нормально? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 fishcka Опубликовано 12 Мая 2010 Жалоба Поделиться Опубликовано 12 Мая 2010 нет, есть функция которая запускается ручками для удаления атачей не имеющих связейвот бы знать что за функция Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 FatCat Опубликовано 12 Мая 2010 Жалоба Поделиться Опубликовано 12 Мая 2010 Для 1.х вкупе с mJournal в свое время писал функцию поска "потерянных" файлов. Писал для стандартных модулей, вот код: function do_search_ibf() { global $ibforums, $DB, $std; if ( $ibforums->member['mgroup'] == $ibforums->vars['admin_group'] ) { @set_time_limit(0); list($usec, $sec) = explode(" ", microtime()); $timer_start = ((float)$usec + (float)$sec); $this->result = ""; // Собираем массив файлов в директории: $all_count = 0; $filez = array(); $dir_files = opendir($ibforums->vars['base_dir']."uploads"); while(false !== ($file = readdir($dir_files))) { if($file != '.' && $file != '..') { $filez[] = $file; $all_count++; } } // Исключаем известные базе аттачи: $unset = array(); // ... в постах $DB->query("SELECT attach_id FROM ibf_posts WHERE LENGTH(attach_id)>5"); while($row = $DB->fetch_row())$unset[] = $row['attach_id']; // ... в журналах $DB->query("SELECT attach_id FROM ibf_jposts WHERE LENGTH(attach_id)>5"); while($row = $DB->fetch_row())$unset[] = $row['attach_id']; // ... в камментах $DB->query("SELECT attach_id FROM ibf_jcomments WHERE LENGTH(attach_id)>5"); while($row = $DB->fetch_row())$unset[] = $row['attach_id']; // Исключаем известные базе аватары: $DB->query("SELECT avatar FROM ibf_members"); while($row = $DB->fetch_row())if( substr($row['avatar'],0,7) == "upload:" )$unset[] = substr($row['avatar'],7); // Исключаем известные базе фотографии: $DB->query("SELECT photo_location, j_photo FROM ibf_member_extra WHERE photo_type = 'upload' OR j_photo_type = 'upload'"); while($row = $DB->fetch_row()) { if( substr($row['photo_location'],0,6) == "photo-" )$unset[] = $row['photo_location']; if( $row['photo_location'] != $row['j_photo'] and substr($row['j_photo'],0,6) == "photo-" )$unset[] = $row['j_photo']; } // Обновляем массив файлов: foreach($filez as $k=>$v)if(in_array($v,$unset))unset($filez[$k]); // Интерфейс: $filesise_all = 0; foreach($filez as $k=>$v) { if(is_file($ibforums->vars['base_dir']."uploads/".$v)) { $filesise = filesize($ibforums->vars['base_dir']."uploads/".$v); $filesise_all += $filesise; $filez[$k] = '<a href="'.$ibforums->vars['upload_url'].'/'.$v.'">'.$v.'</a> ('.round($filesise/1024)."Кб) [<a href='".$ibforums->base_url."act=module&module=clean&who_clean=del_file&del_file=".$v."' target='_blank'>X</a>]"; } } sort($filez); $filesise_all = round($filesise_all/1024); if(count($filez)) { $this->result .= "<h4 align=center>Найдено ".count($filez)." «потерянных» файлов общим весом ".$filesise_all." Кб из ".$all_count." проверенных:</h4><ol>"; $this->result .= "<li>".implode("<li>",$filez); $this->result .= "</ol>"; } else { $this->result .= "<h4 align=center>Проверено ".$all_count." файлов, «потерянных» не найдено.</h4>"; } list($usec, $sec) = explode(" ", microtime()); $timer_end = ((float)$usec + (float)$sec); $this->result .= "</ol><div align=center>Поиск занял ".($timer_end-$timer_start)." секунд.</div><h4 align=center>Новый поиск:</h4>"; $this->result .= '<div align="center"><form action="" method="post"> <input type="hidden" name="act" value="module"> <input type="hidden" name="module" value="clean"> <strong>Что искать:</strong> <select name="who_clean"> <option value="arc_files">Неудаленные архивы</option> <option value="attachs">Неудаленные аттачи</option> <option value="bcps">Бекапы редактирования сообщений</option> </select> <input type="submit" name="ok" value=">>>"> </form></div>'; } else { $this->result = "You're not an admin!"; } }Думаю, переписать для старших версий движка большого труда не составит. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 fishcka Опубликовано 19 Мая 2010 Жалоба Поделиться Опубликовано 19 Мая 2010 Думаю, переписать для старших версий движка большого труда не составит. программисту видимо не составит, а вот чайнику типа меня Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
airr
Не найдена мной тема, которая ответила бы на мой вопрос.
Существует ли стандартная задача, которая удаляет неприкрепленные аттачи, которая запускается периодически?
И вообще, что происходит с файлами, которые были загружены, но не прикреплены?
Если, например, пользователь закачал файлы и передумал создавать тему?
Ссылка на комментарий
Поделиться на других сайтах
5 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.