pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_read_all Читает содержимое большого объекта и посылает напрямую в броузер

Описание

int pg_lo_read_all ( resource $large_object )

pg_lo_read_all() читает большой объект и посылает данные напрямую в броузер после отправки всех необходимых заголовков. Используется в основном для пересылки двоичных данных, таких как изображения или звук.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loreadall().

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

Возвращаемые значения

Количество прочитанных байт, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_read_all()

<?php
   header
('Content-type: image/jpeg');
   
$image_oid 189762345;
   
$database pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$handle pg_lo_open($database$image_oid"r");
   
pg_lo_read_all($handle);
   
pg_query($database"commit");
?>

Смотрите также

  • pg_lo_read() - Читает данные большого объекта

Коментарии

// remember, large objects must be obtained from within a transaction
pg_query ($dbconn, "begin");

// "assume" for this example that the large object resource number of the zipped file is "17899"

$lo_oid = 17899;

$handle_lo = pg_lo_open($dbconn,$lo_oid,"r") or die("<h1>Error.. can't get handle</h1>");

//headers to send to the browser before beginning the binary download
header('Accept-Ranges: bytes');
header('Content-Length: 32029974'); //this is the size of the zipped file
header('Keep-Alive: timeout=15, max=100');
header('Content-type: Application/x-zip');
header('Content-Disposition: attachment; filename="superjob.zip"');

pg_lo_read_all($handle_lo) or 
  die("<h1>Error, can't read large object.</h1>");

// committing the data transaction
pg_query ($dbconn, "commit");
2004-09-24 10:45:13
http://php5.kiev.ua/manual/ru/function.pg-lo-read-all.html
Pay attention that if you omit the "length" parameter it will read a 8192 bytes object regardless to its real dimensions. If you want to use this function think to save the object size somewhere (usually a field in its table) before reading the object. Alternatively use the pg_lo_readall function.
2011-10-08 11:36:59
http://php5.kiev.ua/manual/ru/function.pg-lo-read-all.html

    Поддержать сайт на родительском проекте КГБ