pg_lo_read_all

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

pg_lo_read_all Reads an entire large object and send straight to browser

Опис

pg_lo_read_all(PgSql\Lob $lob): int

pg_lo_read_all() reads a large object and passes it straight through to the browser after sending all pending headers. Mainly intended for sending binary data like images or sound.

To use the large object interface, it is necessary to enclose it within a transaction block.

Зауваження:

This function used to be called pg_loreadall().

Параметри

lob

Примірник PgSql\Lob, якого повертає pg_lo_open().

Значення, що повертаються

Number of bytes read.

Журнал змін

Версія Опис
8.1.0 Тепер параметр lob має бути примірником PgSql\Lob. Раніше очікувався resource.

Приклади

Приклад #1 pg_lo_read_all() example

<?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");
?>

Прогляньте також

add a note

User Contributed Notes 2 notes

up
1
robert dot bernier5 at sympatico dot ca
20 years ago
// remember, large objects must be obtained from within a transactionpg_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 downloadheader('Accept-Ranges: bytes');header('Content-Length: 32029974'); //this is the size of the zipped fileheader('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 transactionpg_query ($dbconn, "commit");
up
0
fabar2 at libero dot it
13 years ago
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.
To Top