// 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 референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
pg_lo_read_all
Референца за `function.pg-lo-read-all.php` со подобрена типографија и навигација.
pg_lo_read_all
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_lo_read_all — Чита цел голем објект и го испраќа директно до прелистувачот
= NULL
pg_lo_read_all() чита голем објект и го пропушта директно до прелистувачот откако ќе ги испрати сите чекачки заглавија. Главно наменет за испраќање бинарни податоци како слики или звук.
За да се користи интерфејсот за големи објекти, неопходно е да се затвори во блок за трансакција.
Забелешка:
Оваа функција порано се нарекуваше pg_loreadall().
Вратени вредности
Број на прочитани бајти.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 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");
?>Белешки од корисници 2 забелешки
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.