powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Перезагрузка файла blob
21 сообщений из 21, страница 1 из 1
Перезагрузка файла blob
    #38580523
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста, как правильно выбрать блоб, в SQL что бы после загрузки в другую БД он из неё нормально выгружался, сейчас делаю так:

Код: php
1.
2.
$sql = "select fdata from SYS_BLOBS where REC_GUID = '$fc'";
$docFile = $db -> getall($sql);



после чего значения поля fdata (бинарную последовательность) я передаю одним из параметров

Код: php
1.
$result = SendDoc ($sResURL, $sName, $uName, $dDesc, $dType, $dFormat, $dClass, $docFile, $trans, $return);



но на сторонней системе выгрузка идет уже не корректно

Модератор: Тема перенесена из форума "Firebird, InterBase".
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38580711
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50,

А можно изложить проблему так, чтобы понятно было не только Вам?

Используемые ЯП и СУБД отсюда тоже не разглядеть, да и хотя бы минимальное описание скрывающегося за getall и SendDoc не помешает.
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38580717
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторfdata ( бинарную последовательность )
а где вы в php бинарные типы данных видели?
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38580917
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vklelynatik50,

А можно изложить проблему так, чтобы понятно было не только Вам?

Используемые ЯП и СУБД отсюда тоже не разглядеть, да и хотя бы минимальное описание скрывающегося за getall и SendDoc не помешает.


Да, конечно.

Существует две системы, бд одной крутится на Firebyrd другой на MSSql, необходимо разгрузить данные из одной в другую, для этого был создан сервис (я пишу для него SOAP клиент) и один из методов этого сервиса SendDoc.

У данного метода есть перечень параметров SendDoc ($sResURL, $sName, $uName, $dDesc, $dType, $dFormat, $dClass, $docFile, $trans, $return) и параметр $docFile отвечает за blob который необходимо передать, соответственно необходимо, что бы в этой переменной была бинарная последовательность блоба (это я так понимаю этот момент, если неправильно скажите :) ). Соответственно, сейчас я делаю так:
1) Выбираю Блоб из БД
Код: plsql
1.
$sql = "select fdata from SYS_BLOBS where REC_GUID = '$fc'";


2) Далее с помощью getall (это как я понимаю встроенная функция php) выдергиваю этоб блоб из sql в перемеменную
$docFile = $db -> getall($sql);
3) Далее вызываю функцию содержащую метод
$result = SendDoc ($sResURL, $sName, $uName, $dDesc, $dType, $dFormat, $dClass, $docFile, $trans, $return);
Функция написана мной и точно работает правильно она чуть ниже. На данный момент в систему приемник попадает, что то типа Array..... соответственно как я подозреваю этот массив надо как то обработать, что бы получить бинарную последовательность БЛОБА, вопрос в том как???

Спасибо за внимание)) и прощу прощения за вчерашнее не пойми что))) устал..

Код: php
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.
function SendDoc ($sResURL, $sName, $uName, $dDesc, $dType, $dFormat, $dClass, $docFile, $trans, $return)
{
	$client = new SoapClient($sResURL, array('soap_version'=> SOAP_1_2, 'trace' => 1, 'exceptions' => true)); 
	$params = array
	('systemName'=>"$sName", 
	'userName'=>"$uName",
	'docDescription' => "$dDesc",
	'docType' => "$dType",
	'docFormat' => "$dFormat",
	'docClassification' => "$dClass",
	'docFile' => "$docFile",
	'transferToUnifiedStorage' => "$trans",
	'returnBackUrl' => "$return");
	$actionHeader = new SoapHeader('http://www.w3.org/2005/08/addressing',
								   'Action',
								   'http://tempuri.org/ISignDataService/SendDoc');
	$client->__setSoapHeaders($actionHeader);
	try
	{$sID = $client->SendDoc($params);}
	catch (Exception $e)
	{$e = $e -> getMessage();
	$log -> log($e);
	if ($e != null)
	echo 'Операция интеграции не была выполнена по следующей причине: '.$e.' Пожалуйста обратитесь в службу технической поддержки';	}
	return $func_result = $sID -> SendDocResult;
}
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38580935
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> Существует две системы, бд одной крутится на Firebyrd другой на MSSql, необходимо разгрузить данные из одной в другую, для этого был создан сервис (я пишу для него SOAP клиент) и один из методов этого
> сервиса SendDoc.
И всё-таки: почему это всё внезапно упёрлось в php?..

--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38580956
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirra,

Как я понимаю мне средствами pho надо разобрать БЛОБ я нашел по этому поводу следующую инфу
http://www.php.net/manual/en/function.ibase-blob-get.php
http://www.sql.ru/forum/816782/php-vygruzka-blob-iz-firebird
но пока ни чего не помогает, возможно из - за непонимания как это должно работать...
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38580959
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow,

ibase_blob_get — Get len bytes data from open blob
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38580982
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> Как я понимаю мне средствами pho надо разобрать БЛОБ я нашел по этому поводу следующую инфу
> http://www.php.net/manual/en/function.ibase-blob-get.php
> http://www.sql.ru/forum/816782/php-vygruzka-blob-iz-firebird
> но пока ни чего не помогает, возможно из - за непонимания как это должно работать...
Извини, у меня немного голова потрескивает, но ты заметил там функцию ibase_blob_echo ?..

--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581037
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirralynatik50> Как я понимаю мне средствами pho надо разобрать БЛОБ я нашел по этому поводу следующую инфу
> http://www.php.net/manual/en/function.ibase-blob-get.php
> http://www.sql.ru/forum/816782/php-vygruzka-blob-iz-firebird
> но пока ни чего не помогает, возможно из - за непонимания как это должно работать...
Извини, у меня немного голова потрескивает, но ты заметил там функцию ibase_blob_echo ?..

--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com



Да, заметил и там в эту функцию возвращают IMAGEDATA это что ли параметр string $blob_id + какой то заголовок header("Content-type: ".$data->MIME,
не могу понять что это....
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581048
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> Да, заметил и там в эту функцию возвращают IMAGEDATA это что ли параметр string $blob_id + какой то заголовок header("Content-type: ".$data->MIME,
> не могу понять что это....
А вот теперь вот Я тебя вообще перестал понимать!.. :(
IMAGEDATA - это и есть данные нужного блоба из базы FB...
Как его впихивать в MS SQL, я понятия не имею!..

--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581060
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirra
А вот теперь вот Я тебя вообще перестал понимать!.. :(
IMAGEDATA - это и есть данные нужного блоба из базы FB...
Как его впихивать в MS SQL, я понятия не имею!..



Я тоже так и подумал

только так он вообще не работает и даже ошибки не выдаёт и var_dump даже не срабатывает

$docFile = ibase_query("select fdata from SYS_BLOBS where REC_GUID = '$fc'");
$data = ibase_fetch_object($docFile);
var_dump($data);
echo ibase_blob_echo ($data->FDATA);
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581063
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и заголовок питался прописывать

header("Content-type: application/pdf");
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581066
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> Я тоже так и подумал
> только так он вообще не работает и даже ошибки не выдаёт и var_dump даже не срабатывает
Ох-х-х...
Уломал, сейчас попоробую...


--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581105
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> header("Content-type: application/pdf");
Ну вот, навалял...
Всё прекрасно открывается/сохраняется...
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?php
  $db = "X:\\MediaInfo\\Example\\BOBSPB_DISKS.FDB";
  $dbusername = "SYSDBA";
  $dbpassword = "masterkey";
  $query = "select fi.id_film, fi.cover from tbl_films fi where fi.id_film = 1";

  $dbh = ibase_connect($db, $dbusername, $dbpassword, "UTF8") or die("Couldn't connect DB");
  $result = ibase_query($query);
  $data = ibase_fetch_object($result);
  if ($data)
  {
    header("Content-Type: application/x-pdf;");
    header("Content-Disposition: attachment; filename=CV_VABakhvaloff.pdf");
    ibase_blob_echo($data->COVER);
  }
  ibase_close($dbh);
?>



--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581127
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirralynatik50> header("Content-type: application/pdf");
Ну вот, навалял...
Всё прекрасно открывается/сохраняется...
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?php
  $db = "X:\\MediaInfo\\Example\\BOBSPB_DISKS.FDB";
  $dbusername = "SYSDBA";
  $dbpassword = "masterkey";
  $query = "select fi.id_film, fi.cover from tbl_films fi where fi.id_film = 1";

  $dbh = ibase_connect($db, $dbusername, $dbpassword, "UTF8") or die("Couldn't connect DB");
  $result = ibase_query($query);
  $data = ibase_fetch_object($result);
  if ($data)
  {
    header("Content-Type: application/x-pdf;");
    header("Content-Disposition: attachment; filename=CV_VABakhvaloff.pdf");
    ibase_blob_echo($data->COVER);
  }
  ibase_close($dbh);
?>



--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com





Он выводит содержимое на экран?

у меня стал в переменную возвращать 1 и все в принципе верно она же Bool в мануале пишут
This function opens a BLOB for reading and sends its contents directly to standard output (the browser, in most cases).
интересно как вернуть не в стандарт output а в переменную и не Bool а само содержимое))
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581131
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> Он выводит содержимое на экран?

Оно в зависимости от настроек браузера либо выдаёт запрос на операцию с файлом, либо проводит её молча (открывает в ридере или сохраняет на диске)...

lynatik50> интересно как вернуть не в стандарт output а в переменную и не Bool а само содержимое))
Головная боль моя не унимается, а только становится сильнее...


--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581137
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirralynatik50> Он выводит содержимое на экран?

Оно в зависимости от настроек браузера либо выдаёт запрос на операцию с файлом, либо проводит её молча (открывает в ридере или сохраняет на диске)...

lynatik50> интересно как вернуть не в стандарт output а в переменную и не Bool а само содержимое))
Головная боль моя не унимается, а только становится сильнее...




эх моя тоже .......
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581142
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> эх моя тоже .......
Ну вот никогда мне не нужно было блобы выковыривать из FB...
Но почему-то я это нахожу, глядя в те же места, куда и тебя посылают...
Простая замена в предыдущем коде:
Код: php
1.
2.
3.
4.
5.
6.
  if ($data)
  {
    $blob_data = ibase_blob_info($data->COVER);
    $blob_hndl = ibase_blob_open($data->COVER);
    echo ibase_blob_get($blob_hndl, $blob_data[0]);
  }


....и на экран лезет куча букафф...

--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581157
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> эх моя тоже .......
На тебе и продолжение, чтобы меньше всех мучал:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function prepareImageDBString($filepath)
{
    $out = 'null';
    $handle = @fopen($filepath, 'rb');
    if ($handle)
    {
        $content = @fread($handle, filesize($filepath));
        $content = bin2hex($content);
        @fclose($handle);
        $out = "0x".$content;
    }
}

$out = prepareImageDBString('/img/myimg.png');
mssql_query("INSERT INTO MyTable(MyImage) VALUES($out) ");



--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581262
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirralynatik50> эх моя тоже .......
На тебе и продолжение, чтобы меньше всех мучал:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function prepareImageDBString($filepath)
{
    $out = 'null';
    $handle = @fopen($filepath, 'rb');
    if ($handle)
    {
        $content = @fread($handle, filesize($filepath));
        $content = bin2hex($content);
        @fclose($handle);
        $out = "0x".$content;
    }
}

$out = prepareImageDBString('/img/myimg.png');
mssql_query("INSERT INTO MyTable(MyImage) VALUES($out) ");



--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com





))) это уже не моя проблема это другой специалист разбирает и пишет и не на php насколько я понимаю)

моя забота это вызов сервиса и передача в него нужных параметров)
...
Рейтинг: 0 / 0
Перезагрузка файла blob
    #38581264
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50> ))) это уже не моя проблема это другой специалист разбирает и пишет и не на php насколько я понимаю)
> моя забота это вызов сервиса и передача в него нужных параметров)
Вот и делай "нужный параметр" в виде "0x".bin2hex ... От греха подальше...

--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Перезагрузка файла blob
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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