Перейти к контенту
  • 0

Проблема с аттачментами.


bams

Вопрос

http://sw.hosting.ru/forum

 

Все было ок, но начали переделывать структуру форума стандартной админкой

 

Теперь такая проблема - аттачменты грузятся в теле сообщения, но по ссылке выскакиевает ошибка, аттачменты не загружаются, а в статистике форума в админке Размер загруженных файлов 0 байт

 

Помогите пожалуйста! Что случилось? Как исправить?

У нас 320 мегов инфы в аттачменте! Не хочется это все потерять!

 

Пример - вот топик с аттачментами - http://sw.hosting.ru/forum/index.php?showtopic=73# нажимаем на ссылку аттачмента - получаем ошибку.

Хотя файл есть и грузится напрямую - http://sw.hosting.ru/forum/uploads/post-5-1079819701.jpg

 

Помогите плиз! Ну кто-нибудь!

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0
Нехотца регится, чтобы посмотреть на твои аттачменты. Раз уж помощи просишь, разрешай для гостей.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Так... ну, открываем sources/misc/attach.php. Вот он, кстати:

        $ibforums->input['id'] = preg_replace( "/^(\d+)$/", "\\1", $ibforums->input['id'] );
        
        if ($ibforums->input['id'] == "")
        {
         $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) );
        }
        
        if ($ibforums->input['type'] == 'post')
        {
         // Handle post attachments.
         
         $DB->query("SELECT pid, attach_id, attach_type, attach_file FROM ibf_posts WHERE pid='".$ibforums->input['id']."'");
         
         if ( !$DB->get_num_rows() )
         {
        	 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) );
         }
         
         $post = $DB->fetch_row();
         
         if ( $post['attach_id'] == "" )
         {
        	 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) );
         }
         
         $file = $ibforums->vars['upload_dir']."/".$post['attach_id'];
         
         if ( file_exists( $file ) and ( $post['attach_type'] != "" ) )
         {
        	 // Update the "hits"..
        	 
        	 $DB->query("UPDATE ibf_posts SET attach_hits=attach_hits+1 WHERE pid='".$post['pid']."'");
        	 
        	 // Set up the headers..
        	 
        	 @header( "Content-Type: ".$post['attach_type']."\nContent-Disposition: inline; filename=\"".$post['attach_file']."\"\nContent-Length: ".(string)(filesize( $file ) ) );
        	 
        	 // Open and display the file..
        	 
        	 $fh = fopen( $file, 'rb' );  // Set binary for Win even if it's an ascii file, it won't hurt.
        	 fpassthru( $fh );
        	 @fclose( $fh );
        	 exit();
         }
         else
         {
        	 // File does not exist..
        	 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) );
         }
        }

Что видим тут?..

         if ( !$DB->get_num_rows() )
         {
        	 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) );
         }

Ну, это вряд ли... Ни одного поста в базе нет - да ну, так не бывает. ;)

         if ( $post['attach_id'] == "" )
         {
        	 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) );
         }

Лезем в базу и смотрим в таблице ibf_posts, заполнены ли поля attach_id.

         if ( file_exists( $file ) and ( $post['attach_type'] != "" ) )
         и т.д.
         else
         {
        	 // File does not exist..
        	 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) );
         }

Так... так... Файлы-то у тебя есть, судя по тому, что в топиках они отображаются...

А поля attach_type заполнены?

 

Заодним проверь, такой ли у тебя код в этом файле, а то вдруг кто изменил чего, а я тут ищу ошибку впустую... :D

 

Кроме того, можно попробовать поставлять в разные места файла строчку

echo 'HERE';

и посмотреть таким образом, в каком именно месте вылетает ошибка...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

theIggs

Господин профессионал! Я ни черта в пхп не смыслю... :D Можно с тобой как-нибудь связаться, чтобы step-by-step? Я все могу, но когда дело касается кода... ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

bams

Здесь нужен код? Я же говорил тебе, смотри в таблицах MySQL.

Код можешь вообще не трогать, просто возьми attach.php из чистого дистрибутива и перезалей поверх имеющегося.

 

Вот когда убедишься, что в табличке ibf_posts никакие поля, связанные с аттачами, не сбросились - тогда будем копать код...

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.