Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема с выгрузкой картинок из Firebird/Interbase / 4 сообщений из 4, страница 1 из 1
20.02.2004, 10:40
    #32416505
Gallagher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выгрузкой картинок из Firebird/Interbase
проблема заключается в том, что картинка то не до конца грузится, то не грузится вовсе. все картинки хранятся одном формате. собсно скрипт:

файл getpic.php

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
    // переменные
    $Host = 'localhost:c:\db\db.gdb';
    $Username = 'SYSDBA';
    $Password = 'masterkey';
    $SQLString =  "select pic_pic from pictures where pic_id = " .$ID;
    
    // подключение к Б.Д. и выполним запрос
    $dbh = ibase_connect($Host, $Username, $Password);
    $res = ibase_query($dbh, $SQLString);
    
    // берем переменную из б.д. 
    $data  		= ibase_fetch_row($res);
    $blob_hndl 	= ibase_blob_open($data[ 0 ]);
    $blob_info        = ibase_blob_info($data[ 0 ]);
    
    // сказали браузеру, что будет картинка
    header('Content-type: image/jpg'); 
    
    // барабанная дробь - три варианта вывода - однохренственно одинаково работают

    // способ  1 :
    echo ibase_blob_get($blob_hndl, $blob_info[ 0 ]); 
    
    // способ  2 :
    while (!ibase_blob_echo($data[ 0 ]));
    
    // способ  3 :
    ibase_blob_echo($data[ 0 ]);
    
    ibase_blob_close($blob_hndl);



файл index.php

Код: plaintext
1.
2.
3.
4.
5.
<?
for ($I =  1 ; $I <  10 ; $I++ )
    echo  "<IMG SRC = 'getpic.php?ID=$I'>" ;

?>


всё это работает под:
WinXP build 2600
Apache 1.3.20
PHP 4
Firebird 1.5 / Interbase 6

точнее работает, но плохо :(
...
Рейтинг: 0 / 0
20.02.2004, 11:34
    #32416631
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выгрузкой картинок из Firebird/Interbase
так все-таки работает или работает плохо ?
php версию поточнее скажи. Там в каких-то версиях с блобами проблемы были.
Вот пример, как декодируют блобы в adodb:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   // still used to auto-decode all blob's
   function _BlobDecode( $blob ) 
   {
      $blobid = ibase_blob_open( $blob );
      $realblob = ibase_blob_get( $blobid,$this->maxblobsize); // 2nd param is max size of blob  -- Kevin Boillet <kevinboillet@yahoo.fr>;
 
      while($string = ibase_blob_get($blobid,  8192 )){ 
         $realblob .= $string; 
      }
      ibase_blob_close( $blobid );

      return( $realblob );
   } 
...
Рейтинг: 0 / 0
20.02.2004, 23:11
    #32417573
Gallagher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выгрузкой картинок из Firebird/Interbase
Макс М ! Респект тебе огормный! Всё теперь всё работает без проблем.
Осталось только мозгами понять, почему сначала выкачиваем из блоба некое мифическое $this->maxblobsize а потом дёргаем кусками по 8 кб... ну да ладно...
...
Рейтинг: 0 / 0
20.02.2004, 23:20
    #32417575
Gallagher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выгрузкой картинок из Firebird/Interbase
Макс М ! Респект тебе огормный! Всё теперь всё работает без проблем.
Осталось только мозгами понять, почему сначала выкачиваем из блоба некое мифическое $this->maxblobsize а потом дёргаем кусками по 8 кб... ну да ладно...
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема с выгрузкой картинок из Firebird/Interbase / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]