// 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");
pg_lo_read_all
(PHP 4 >= 4.2.0, PHP 5)
pg_lo_read_all — Reads an entire large object and send straight to browser
Popis
int pg_lo_read_all ( resource $large_object )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.
Poznámka: This function used to be called pg_loreadall().
Seznam parametrů
- large_object
PostgreSQL large object (LOB) resource, returned by pg_lo_open().
Návratové hodnoty
Number of bytes read or FALSE on error.
Příklady
Příklad 1637. 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");
?>
Viz také
| pg_lo_read() |
pg_lo_read_all
robert dot bernier5 at sympatico dot ca
24-Sep-2004 07:45
24-Sep-2004 07:45
