Links ::  | DEV web management system | Katalóg | Webhosting | Recepty
  
 Index | Registrácia | Hľadať | Galéria | BoardNeprihlásený užívateľ  //Štvrtok, 23. Novembra 2017 
Navigation
Index
Top 10 autorov
Top 20 článkov
Hľadať
Galéria

Zones
Asp.(NET)
C/C++
Flash
Grafika+Design
Hardware
Hry
Html/Css/Xml
Java
Linux
Networks
Operačný systém
Pascal/Delphi
PHP
Security
Software
SQL
Visual Basic
Wap/Wml
Windows
Zóna iné

Links
Script index Interval.cz Pc.sk Regedit.sk TipyaTriky.sk Builder.cz Asp.cz Živě.sk Zoznam.sk Code.box.sk Root.cz Quant&Financial

Odkazy

Sessions
Stránky Developer.sk si práve číta 381 čitateľov, z toho je 0 zaregistrovaných

BackEnd
Odkazy na nové články je možné preberať pomocou backend.php

kuk

    Práca s binárnymi dátami na platforme PHP+MySQL

Mnoho z vás sa určite už snažilo skombinovať silu databázového servera MySQL s multimédiami. V dnešnom článku si ukážeme, ako ukladať a čítať BLOB-y z pohľadu php


Na ukladanie veľkých binárnych dát sa na mnohých databázových serveroch včetne MySQL používa dátový typ BLOB (Binary Large Object). Ak chceme na server ukladať multimédiá, použijeme typ BLOB. Pre potreby tohto článku si vytvorme tabuľku binarne_data, do ktorej budeme ukladať všetky blob-y:
CREATE TABLE binarne_data (data BLOB, 
                           velkost INT, 
                           typ VARCHAR(255)
                          )
Prácu s binárnymi dátami si ukážeme na príklade ukladania a čítania obrázkov. Atribut data bude obsahovať telo obrázku, atribút velkost bude velkost obrázka v bajtoch, a v atribúte typ bude uložený typ obrázku, ktorý sa v phpčku pripojí pomocou funkcie Header().

Zápis dát
Predpokladajme, že v našom php skripte bude premenná $conn identifikátor spojenia s databázovým serverom, ktorý nám vrátila funkcia MySQL_Connect. Skript vygeneruje stránku na ktorej sa bude nachádzať formulár, pomocou ktorého odošleme náš obrázok na server, ktorý ho uloží ako blob do databázy: tu je sľúbený skript:
<?
// skript zapis_data.php - zapis binarnych dat do databazy
// $conn - identifikator spojenia so serverom
if ($odoslane) { // Ak bol form. odoslany
 $filepointer=FOpen($obrazok,"r"); // Otvorit docastny subor
 $binarydata=Addslashes(FRead($filepointer,$obrazok_size));
  // Nacitat docastny subor do premennej,
  // pred nebezpecne znaky dat lomitka
  $prikaz .= "INSERT INTO binarne_data VALUES ";
  $prikaz .= "('$binarydata',$obrazok_size,'$obrazok_type')";
  MySQL_Query($prikaz, $conn);
  // Zapis to tabuľky
?>
<form method="post" enctype="multipart/form-data">
 // web rozhranie - formular na odosielanie binarnych dat, data
 // musia byt pri prenose kodovane metodou multipart/form-data
 <input type="file" name="obrazok" accept="image/*">
 // vstupne pole typu "file", v tomto poli je mozne nalistovat
 // pozadovany subor, ktory chcete odoslat.
 <input type="hidden" name="odoslane" value="true">
 // info, ze formular bol odoslany
 <input type="submit" value="Odoslat"> // odoslat formular
</form>

Komentár k skriptu: Prehliadač po kliknutí na tlačítko Odoslat binarne data zakóduje a pošle skriptu na spracovanie. Interpréter PHP automaticky došlý obrázok skopíruje do dočastného súboru, pričom v premennej $obrazok sa bude nachádzať ukazovateľ na tento dočastný súbor. Premenná $obrazok_type bude obsahovať typ obrázka (odoslaný prehliadačom), a veľkosť obrázka v bajtoch. Skript dočastný súbor otvorí, a jeho obsah priradí premennej $binarydata. Pred nebezpečné znaky sa pripoja lomítka, a tak sa premenná zapíše do databázy.

Čítanie dát:
Pre čítanie dát použijeme skript citaj_data.php, úlohou skriptu bude prečítať náhodný záznam (obrázok) z databázy. Všimnite si, že SQL príkaz SELECT je bez podmienok, takže v praxi tam nejakú tú podmienku bude treba pridať. V tomto prípade sa z databázy načíta vždy iba prvý obrázok:
<?
 $obr=mysql_fetch_array(
  mysql_query("SELECT data, typ FROM binarne_data LIMIT 1", 
  $conn));

 header ("Content-type: $obr[typ]"); 
 // pripojit informaciu o type dokumentu
 //pre prehliadac. Tuto funkciu nevynechavajte, inac sa 
 //nezobrazi obrazok, ale iba binarne data v "textovom" tvare
 echo $obr[data]; // Vypisat data, lomitka z pred 
                  // nebezpecnych znakov sa odstrania 
                  // automaticky
?>

Vystupom skriptu citaj_data bude teda obrázok, ktorý možeme do nášho html dokumentu vložiť pomocou tagu img:
<img src="citaj_data.php" alt="Obrazok z databazy">
Skripty neboli testované, a majú iba demonštračný charakter. V praxi je možné skripty doplniť o rôzne podmienky, a volať ich pomocou url adresy s nejakým parametrom (napr. src="citaj_data.php?cislo=52"), na dosiahnutie požadovaného výsledku.


Autor : Dev, čítané 12198x, komentárov: 0
Hodnotenie :    |  Pondelok, 4. Augusta 2003

Pridať nový komentár/Komentáre
Vaše hodnotenie :   horšie  lepšie
Login
Login:
Heslo:

Hľadať
 
v článkoch
v diskusiach
v komentároch

Top read
PHP Coder

Priklady v C. 1.čast.

DEV web management system

Php a bezpečnosť skriptov

Autorun CD

Top discuss
Jednoduchý web formulár (ASP.NET)

Delphi seriál: (1.časť)

Velmi rychla grafika v Pascale

DEV web management system

Naša ikona
Páčia sa Vám naše stránky ? Ak áno, podporte nás prosím a umiestnite si na svoju stránku našu ikonku:





Copyright (c) Developer.sk, All rights reserved.
Powered by DEV web management system