Acasa Tehnologie Salvarea unei imagini/clip video/audio intr-o baza de date PostgreSQL folosind large objects

Salvarea unei imagini/clip video/audio intr-o baza de date PostgreSQL folosind large objects

by Dragos Schiopu

>Metoda 1:

function insert_picture($cale)
{
$con_string='host=localhost port=5432 dbname=nume_baza_de_date user=nume_utilizator password=parola_acces’;
@pg_connect($con_string) or die("Eroare conectare BD!"); 
$cale="fisier.jpg";
$fisier=fopen($cale,"r") or die("Eroare deschidere fisier!");
$buffer=fread($fisier,filesize($cale));
fclose($fisier);
//$cale poate fi calea catre un fisier imagine sau catre un clip video sau
//catre orice alt tip de fisier pe care dorim sa il salvam in baza de date
pg_exec("begin");
$id=pg_lo_create();
print $id;
//pg_exec("insert into imagini values($id)"); //prelucrarea id-ului
$obiect=pg_lo_open($id,"w"); //deschidere obiect in modul scriere
pg_lo_write($obiect,$buffer);
pg_lo_close($obiect);
pg_exec("commit");
pg_close();
}

Metoda 2 (folosind functia pg_lo_import() pentru a importa un fisier local):

function insert_picture($cale)
{
$con_string='host=localhost port=5432 dbname=nume_baza_de_date user=nume_utilizator password=parola_acces’;
@pg_connect($con_string) or die("Eroare conectare BD!");
pg_exec("begin");
$id=pg_lo_import(“cale_fisier”); //ex c:poza.jpg
//pg_exec("insert into imagini values($id)"); //prelucrarea id-ului
pg_exec("commit");
pg_close();

Metoda 3 – pentru fisiere trimise prin upload, se modifica functia 1 astfel:

$cale=$_FILES['Filedata']['tmp_name'];
$fisier=fopen($cale,"r") or die("Eroare deschidere fisier!");
$buffer=fread($fisier,filesize($cale));

sau: se salveaza fisierul upload-at intr-un director pe site, se importa in baza de date PostgreSQL fie folosind metoda 2, fie 1, apoi se sterge.

s-ar putea sa-ti placa