本文整理汇总了PHP中pg_lo_open函数的典型用法代码示例。如果您正苦于以下问题:PHP pg_lo_open函数的具体用法?PHP pg_lo_open怎么用?PHP pg_lo_open使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pg_lo_open函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: loOpen
public function loOpen($oid, $mode)
{
assert('is_int($oid)');
assert('is_string($mode)');
$loid = pg_lo_open($this->_pg, $oid, $mode);
return new PostgreSQLLOB($this->_pg, $loid);
}
示例2: DB_lo_open
function DB_lo_open($conn, $file, $mode)
{
if (strcmp(phpversion(), '4.2.0') < 0) {
return pg_loopen($conn, $file, $mode);
} else {
return pg_lo_open($conn, $file, $mode);
}
}
示例3: getstreamblob
public function getstreamblob($oid)
{
$this->query = pg_query($this->dbhandle, "begin");
$handle = pg_lo_open($this->dbhandle, $oid, "r");
$blob = pg_lo_read_all($handle);
pg_query($this->dbhandle, "commit");
return $blob;
//TODO: kontola, ali je bil query ok izveden!
}
示例4: escrita
/**
* Escreve objeto oid com o arquivo informado
* @param integer $iOid
* @param string $sCaminhoArquivo
* @return boolean
*/
public static function escrita($sCaminhoArquivo, $iOid = null)
{
global $conn;
if (!db_utils::inTransaction()) {
throw new Exception("Sem transação Ativa.");
}
$rsLargeObject = pg_lo_open($conn, $iOid, "w");
$sConteudoArquivo = file_get_contents($sCaminhoArquivo);
$escrita = pg_lo_write($rsLargeObject, $sConteudoArquivo);
return $escrita;
}
示例5: stream_open
function stream_open($path, $mode)
{
$path = trim(parse_url($path, PHP_URL_HOST));
if ($path) {
if ($this->dbh = pg_connect($path)) {
if (pg_query($this->dbh, 'BEGIN')) {
if (is_resource($this->loh = pg_lo_open($this->dbh, $this->lon = self::$loId, $mode))) {
pg_lo_seek($this->loh, 0, PGSQL_SEEK_END);
$this->size = (int) pg_lo_tell($this->loh);
pg_lo_seek($this->loh, 0, PGSQL_SEEK_SET);
return true;
}
}
}
}
return false;
}
示例6: getPoster
public function getPoster($oid)
{
//TODO check good run
$connection = $this->_em->getConnection();
$database = pg_connect("host=" . $connection->getHost() . " port=5432 dbname=" . $connection->getDatabase() . " user=postgres");
$stat = pg_connection_status($database);
if ($stat !== PGSQL_CONNECTION_OK) {
return null;
}
ob_start();
pg_query($database, "begin");
$handle = pg_lo_open($database, $oid, "r");
pg_lo_read_all($handle);
pg_query($database, "commit");
$imgContent = ob_get_contents();
ob_end_clean();
return $imgContent;
}
示例7: copy_db_image
function copy_db_image($dbconn, $row, $wfd, $header = null)
{
$oid = $row['image_blob'];
$type = $row['image_type'];
if (isset($header)) {
header("Content-type: image/" . $row['image_type']);
}
$fd = pg_lo_open($dbconn, $oid, 'r');
if ($fd) {
$str = pg_lo_read($fd, 8192);
do {
fwrite($wfd, $str, strlen($str));
} while ($str = pg_lo_read($fd, 8192));
pg_lo_close($fd);
} else {
error_log("Unable to open oid {$oid} in db: " . pg_last_error());
}
}
示例8: pg_lo_write
echo "pg_lo_open() error\n";
}
pg_lo_write($handle, "large object data\n");
pg_lo_close($handle);
pg_exec($db, "commit");
echo "open/read/tell/seek/close LO\n";
pg_exec($db, "begin");
$handle = pg_lo_open($db, $oid, "w");
pg_lo_read($handle, 100);
pg_lo_tell($handle);
pg_lo_seek($handle, 2);
pg_lo_close($handle);
pg_exec($db, "commit");
echo "open/read_all/close LO\n";
pg_exec($db, "begin");
$handle = pg_lo_open($db, $oid, "w");
pg_lo_read_all($handle);
if (pg_last_error()) {
echo "pg_lo_read_all() error\n" . pg_last_error();
}
pg_lo_close($handle);
pg_exec($db, "commit");
echo "unlink LO\n";
pg_exec($db, "begin");
pg_lo_unlink($db, $oid) or print "pg_lo_unlink() error 1\n";
pg_exec($db, "commit");
// more pg_lo_unlink() tests
echo "Test without connection\n";
pg_exec($db, "begin");
$oid = pg_lo_create($db) or print "pg_lo_create() error\n";
pg_lo_unlink($oid) or print "pg_lo_unlink() error 2\n";
示例9: large_object_fetch
function large_object_fetch($oid, $return = false)
{
trigger_before('large_object_fetch', $this, $this);
//$result = pg_query($this->conn,"SELECT $field FROM $table WHERE $");
//if (!$result) { trigger_error("Error in select file OID", E_USER_ERROR ); }
//$oid = pg_result($result,0,$fieldname);
//if (!$oid) { trigger_error("Error in file OID result", E_USER_ERROR ); }
$result = @pg_query($this->conn, "BEGIN");
if (!$result) {
trigger_error("error starting l_o_f transaction: " . @pg_last_error($this->conn), E_USER_ERROR);
}
$handle = @pg_lo_open($this->conn, $oid, "r");
if (!$handle) {
trigger_error("error in l_o_f/l_o_o: " . @pg_last_error($this->conn), E_USER_ERROR);
}
if ($return === true) {
return @pg_lo_read($handle, $this->max_blob_length);
} else {
@pg_lo_read_all($handle);
}
if (!$buffer) {
trigger_error("error in l_o_read_all: " . @pg_last_error($this->conn), E_USER_ERROR);
}
$result = @pg_lo_close($handle);
if (!$result) {
trigger_error("error in l_o_close: " . @pg_last_error($this->conn), E_USER_ERROR);
}
$result = @pg_query($this->conn, "COMMIT");
if (!$result) {
trigger_error("error committing l_o_f transaction: " . @pg_last_error($this->conn), E_USER_ERROR);
}
return $return;
}
示例10: stream_open
function stream_open($path, $mode)
{
if (!($this->conn = HTTP_Download_PgLOB::getConnection())) {
return false;
}
if (!preg_match('/(\\d+)/', $path, $matches)) {
return false;
}
$this->ID = $matches[1];
if (!pg_query($this->conn, 'BEGIN')) {
return false;
}
$this->handle = pg_lo_open($this->conn, $this->ID, $mode);
if (!is_resource($this->handle)) {
return false;
}
// fetch size of lob
pg_lo_seek($this->handle, 0, PGSQL_SEEK_END);
$this->size = (int) pg_lo_tell($this->handle);
pg_lo_seek($this->handle, 0, PGSQL_SEEK_SET);
return true;
}
示例11: pg_query
* detalhes.
*
* Voce deve ter recebido uma copia da Licenca Publica Geral GNU
* junto com este programa; se nao, escreva para a Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307, USA.
*
* Copia da licenca no diretorio licenca/licenca_en.txt
* licenca/licenca_pt.txt
*/
include "libs/db_stdlib.php";
include "libs/db_sql.php";
//############## teste ####################
if (isset($oid_arq) && $oid_arq != "") {
pg_query($conn, "begin");
$loid = pg_lo_open($conn, $oid_arq, "r");
header('Accept-Ranges: bytes');
//header('Content-Length: 32029974'); //this is the size of the zipped file
header('Keep-Alive: timeout=15, max=100');
$sqloid = "select * from liclicitaedital where l27_arquivo = {$oid_arq}";
$resultoid = pg_query($sqloid);
//$result_nomearq = $cltarefaanexos->sql_record($cltarefaanexos->sql_query_file(null,"*",null,"at25_anexo = '$oid_arq'"));
db_fieldsmemory($resultoid, 0);
//header('Content-type: Application/x-zip');
header('Content-Disposition: attachment; filename="' . $l27_arqnome . '"');
pg_lo_read_all($loid);
pg_lo_close($loid);
pg_query($conn, "commit");
exit;
}
//#########################3
示例12: BlobDecode
function BlobDecode($blob)
{
@pg_exec("begin");
$fd = @pg_lo_open($blob, "r");
if ($fd === false) {
@pg_exec("commit");
return $blob;
}
$realblob = @pg_loreadall($fd);
@pg_loclose($fd);
@pg_exec("commit");
return $realblob;
}
示例13: readFlushLargeObject
/**
* Reads an entire large object and send it to the browser
*/
function readFlushLargeObject($lo_oid)
{
$connection = $this->connect(NULL);
// Large objects calls MUST be enclosed in transaction block
// remember, large objects must be obtained from within a transaction
pg_query($connection, "begin");
$handle_lo = pg_lo_open($connection, $lo_oid, "r") or die("<h1>Error.. can't get handle</h1>");
pg_lo_read_all($handle_lo) or die("<h1>Error, can't read large object.</h1>");
// committing the data transaction
pg_query($connection, "commit");
}
示例14: pgsqlLOBOpen
public function pgsqlLOBOpen($oid)
{
if (!($stream = tmpfile())) {
$this->set_error(7, 'Could not create tem file', 'HY000', PDO::ERRMODE_EXCEPTION, 'pgsqlLOBOpen');
}
if (!($lo_stream = pg_lo_open($this->link, $oid, 'w'))) {
$this->set_error(null, PDO::ERRMODE_EXCEPTION, 'pgsqlLOBOpen');
}
$this->los[(int) $stream] = array($oid, $lo_stream);
return $stream;
}
示例15: Open
function Open($mode = "rw")
{
if (version_compare(phpversion(), "4.2.0", "ge") > 0) {
$this->result = pg_lo_open($this->dbconnect, $this->oid, $mode);
} else {
$this->result = pg_loopen($this->dbconnect, $this->oid, $mode);
}
return $this->result;
}