SAVE AND RESTORE FILES TO POSTGRESQL (PHP CLASS)

From: ivan valadares <ivan(dot)valadares(at)ydreams(dot)com>
To: pgsql-php(at)postgresql(dot)org
Subject: SAVE AND RESTORE FILES TO POSTGRESQL (PHP CLASS)
Date: 2005-12-29 19:32:00
Message-ID: 43B439B0.40401@ydreams.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

<?php

function addImage($conn,$filename)
{
// Open and read the file that was uploaded
$fp = fopen($filename, "r");
if($fp == false)
echo "Error opening file";
// Begin a PostgreSQL transaction
pg_exec("begin");

// create the large object and get the lo id
$lo_id = pg_locreate();

// have postgresql open the large object for writing
$lo_fp = pg_loopen($lo_id, "w");

// for ever 8192 bytes of the uploaded file
while($nbytes = fread($fp, 8192)) {

// write to the large object
$tmp = pg_lowrite($lo_fp, $nbytes);

// handle possible error
if($tmp < $nbytes) {
echo "error while writing large object";
}

}

// close the large object
pg_loclose($lo_fp);

// commit the postgresql transaction
pg_exec("commit");

// close the uploaded file
fclose($fp);


if (!is_int($lo_id)) {
// return false
return false;
}

if (is_int($lo_id)) {
// return large object id
return $lo_id;
}

}

function ReadImage($lo_id,$filesize)
{
pg_exec("begin");

$handle = pg_lo_open($lo_id,"r");
$data = pg_lo_read($handle,$filesize);
//pg_lo_close($lo_fp);

//pg_exec($conn,"commit");
return $data;
}

function WriteImageToFile($id,$filename,$filesize)
{
$data = ReadImage($id,$filesize);
$f = fopen($filename,"w");
if(fwrite($f,$data) == FALSE)
{
$message ="ERROR";//getTokenValue("CANT_WRITE_FILE",$lang)."
dbresource.txt";
}
fclose($f);
}
?>

-------- Database ----------------

CREATE TABLE images (
name text,
image oid,
filesize bigint
);

---------- File to Database Exemple ------------
include("image.php");
$filetosave="HPIM0551.JPG" // file to save in the database
$loId = addImage($conn,$filetosave);
$id_Desc = $filetosave;
$fsize=filesize("HPIM0551.JPG");
$sql = "INSERT INTO images(name,value,filesize)
VALUES('$id_Desc','$loId','$fsize')";
pg_query($sql);

-------- Database to Files Exemple ------------
include("image.php");
$sql = "Select value,name,filesize FROM images";
$res = Query($conn,$sql);
$dir = "C:\\images\\"; // directory
while(Fetch($res))
{
if (Cell($res,2))
{
WriteImageToFile(Cell($res,0),$dir.Cell($res,1),Cell($res,2));
}
}

Browse pgsql-php by date

  From Date Subject
Next Message Volkan YAZICI 2006-01-01 16:38:38 PHP, PostgreSQL Extension
Previous Message ivan valadares 2005-12-29 19:30:57 Postgresql backup and restore php script