Перейти к контенту
  • 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 никакие поля, связанные с аттачами, не сбросились - тогда будем копать код...

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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