SAVE AND RESTORE FILES TO POSTGRESQL (PHP CLASS)

Поиск
Список
Период
Сортировка
От ivan valadares
Тема SAVE AND RESTORE FILES TO POSTGRESQL (PHP CLASS)
Дата
Msg-id 43B439B0.40401@ydreams.com
обсуждение исходный текст
Список 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 по дате отправления:

Предыдущее
От: ivan valadares
Дата:
Сообщение: Postgresql backup and restore php script
Следующее
От: Volkan YAZICI
Дата:
Сообщение: PHP, PostgreSQL Extension