Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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));
}
}



pgsql-php by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group