Forum » Programiranje » Prikaz slik iz mysql baze
Prikaz slik iz mysql baze
roky99 ::
Živjo!
Imam kodo za nalaganje slik v mysql, vendar se povavi problem pri prikazovanju slik. Naslednja koda mi pokaže le povezave do velikih slik, jaz pa bi rad, da bi mi prokazoval manjše slikce na katere bi se dalo kliknit za povečavo (wnb gallery).
Imam kodo za nalaganje slik v mysql, vendar se povavi problem pri prikazovanju slik. Naslednja koda mi pokaže le povezave do velikih slik, jaz pa bi rad, da bi mi prokazoval manjše slikce na katere bi se dalo kliknit za povečavo (wnb gallery).
<?php $db_host = 'localhost'; // don't forget to change $db_user = 'root'; $db_pwd = ''; $database = 'slike'; $table = 'ae_gallery'; // use the same name as SQL table $password = '123'; // simple upload restriction, // to disallow uploading to everyone if (!mysql_connect($db_host, $db_user, $db_pwd)) die("Ne morem se povezati z bazo"); if (!mysql_select_db($database)) die("Ne morem izbrati database-a"); // This function makes usage of // $_GET, $_POST, etc... variables // completly safe in SQL queries function sql_safe($s) { if (get_magic_quotes_gpc()) $s = stripslashes($s); return mysql_real_escape_string($s); } // If user pressed submit in one of the forms if ($_SERVER['REQUEST_METHOD'] == 'POST') { // cleaning title field $title = trim(sql_safe($_POST['title'])); if ($title == '') // if title is not set $title = '(brez imena)';// use (empty title) string if ($_POST['password'] != $password) // cheking passwors $msg = 'Error: Narobno geslo'; else { if (isset($_FILES['photo'])) { @list(, , $imtype, ) = getimagesize($_FILES['photo']['tmp_name']); // Get image type. // We use @ to omit errors if ($imtype == 3) // cheking image type $ext="png"; // to use it later in HTTP headers elseif ($imtype == 2) $ext="jpeg"; elseif ($imtype == 1) $ext="gif"; else $msg = 'Error: neznani format slike'; if (!isset($msg)) // If there was no error { $data = file_get_contents($_FILES['photo']['tmp_name']); $data = mysql_real_escape_string($data); // Preparing data to be used in MySQL query mysql_query("INSERT INTO {$table} SET ext='$ext', title='$title', data='$data'"); $msg = 'Uspeh: slika naložena'; } } elseif (isset($_GET['title'])) // isset(..title) needed $msg = 'Error: slika ni bila naložena';// to make sure we've using // upload form, not form // for deletion if (isset($_POST['del'])) // If used selected some photo to delete { // in 'uploaded images form'; $id = intval($_POST['del']); mysql_query("DELETE FROM {$table} WHERE id=$id"); $msg = 'Slika izbrisana'; } } } elseif (isset($_GET['show'])) { $id = intval($_GET['show']); $result = mysql_query("SELECT ext, UNIX_TIMESTAMP(image_time), data FROM {$table} WHERE id=$id LIMIT 1"); if (mysql_num_rows($result) == 0) die('ni slik'); list($ext, $image_time, $data) = mysql_fetch_row($result); $send_304 = false; if (php_sapi_name() == 'apache') { // if our web server is apache // we get check HTTP // If-Modified-Since header // and do not send image // if there is a cached version $ar = apache_request_headers(); if (isset($ar['If-Modified-Since']) && // If-Modified-Since should exists ($ar['If-Modified-Since'] != '') && // not empty (strtotime($ar['If-Modified-Since']) >= $image_time)) // and grater than $send_304 = true; // image_time } if ($send_304) { // Sending 304 response to browser // "Browser, your cached version of image is OK // we're not sending anything new to you" header('Nazadnje spremenjeno: '.gmdate('D, d M Y H:i:s', $ts).' GMT', true, 304); exit(); // bye-bye } // outputing Last-Modified header header('Nazadnje spremenjeno: '.gmdate('D, d M Y H:i:s', $image_time).' GMT', true, 200); // Set expiration time +1 year // We do not have any photo re-uploading // so, browser may cache this photo for quite a long time header('Poteče: '.gmdate('D, d M Y H:i:s', $image_time + 86400*365).' GMT', true, 200); // outputing HTTP headers header('Content-Length: '.strlen($data)); header("Content-type: image/{$ext}"); // outputing image echo $data; exit(); } ?> <HTML> <HEAD> <TITLE>Galerija</TITLE> <META http-equiv="Content-Type" content="text/html; charset=windows-1250"> <META name="Author" content="Rok Gorenjc"> <META NAME ="description" CONTENT="Računalništvto rok gorenjc krmelj ovca ovcka splet spletne strani novice"> <META NAME="keywords" CONTENT="Računalništvto rok gorenjc krmelj ovca ovcka splet spletne strani novice"> <body> <h1>Galerija</h1> <h2>Naložene slike:</h2> <?php $result = mysql_query("SELECT id, image_time, title FROM {$table} ORDER BY id DESC"); if (mysql_num_rows($result) == 0) // table is empty echo '<ul><li>Ni slik</li></ul>'; else { echo '<ul>'; while(list($id, $image_time, $title) = mysql_fetch_row($result)) { // outputing list echo "<li>"; echo "<a href='{$PHP_SELF}?show={$id}'>{$title}</a> – "; echo "<small>{$image_time}</small></li>"; } echo '</ul>'; } ?>
don't drink and drive, just smoke and fly! ;)
- spremenil: Primoz ()
krho ::
Sedaj ti bom solil pamet. DO NOT DO THAT.
Slike pašejo na file system. S tem, da jih še sparticioniraš v različne direktorije recimo po max 500 slik v enem...
Slike pašejo na file system. S tem, da jih še sparticioniraš v različne direktorije recimo po max 500 slik v enem...
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Zgodovina sprememb…
- spremenil: krho ()
techfreak :) ::
Imaš "neomejeno" bazo ali ti je dolgčas? Nekaj takšnega NI priporočljivo. Upočasnjuje strežnik, predolgo nalaga, ... Shrani v mapo in je.
user4683 ::
Odgovora na original vprašanje ne vem, imam pa komentar na zadnja dva posta..
Odvisno od situacije (in učinkovitosti implementacije)! So določeni primeri, ko je dosti lažje in celo priporočljivo shranit slike v bazo.
Je pa res, da za wannabe galerijo to ni :)
Odvisno od situacije (in učinkovitosti implementacije)! So določeni primeri, ko je dosti lažje in celo priporočljivo shranit slike v bazo.
Je pa res, da za wannabe galerijo to ni :)
Ice-Heki ::
A tole dejansko deluje?
Tistle Nazadnje spremenjeno me malo moti
header('Nazadnje spremenjeno: '.gmdate('D, d M Y H:i:s', $image_time).' GMT', true, 200);
Tistle Nazadnje spremenjeno me malo moti
Zgodovina sprememb…
- spremenil: Primoz ()
techfreak :) ::
Odvisno od situacije (in učinkovitosti implementacije)! So določeni primeri, ko je dosti lažje in celo priporočljivo shranit slike v bazo.
Povej primer.
A tole dejansko deluje?
header('Nazadnje spremenjeno: '.gmdate('D, d M Y H:i:s', $image_time).' GMT', true, 200);
Tistle Nazadnje spremenjeno me malo moti
user4683 ::
Enostavnejša replikacija in arhiviranje podatkov, kontrola nad verzijami dokumentov (ja, tudi slik), transakcije, en mehanizem za varnost podatkov,...
Je pa tudi kak downside - recimo višja cena (dobre in ustrezno velike baze) in slabša hitrost. Čeprav v SQL Serverju 2008 je recimo FILESTREAM tip, ki ima skoraj vse prednosti hranjenja poti do fizične datoteke na disku (hitrost streamanja) + tiste omenjene zgoraj (je pa počasnejši pri pogostejših manjših updateih).
Pač.. uporabiš kar potrebuješ. Baze slik niso samo albumi s počitnic
Je pa tudi kak downside - recimo višja cena (dobre in ustrezno velike baze) in slabša hitrost. Čeprav v SQL Serverju 2008 je recimo FILESTREAM tip, ki ima skoraj vse prednosti hranjenja poti do fizične datoteke na disku (hitrost streamanja) + tiste omenjene zgoraj (je pa počasnejši pri pogostejših manjših updateih).
Pač.. uporabiš kar potrebuješ. Baze slik niso samo albumi s počitnic
Zgodovina sprememb…
- spremenil: user4683 ()
preem ::
ja dobro, ne pravim da ni usecasov, ko ne bi bilo uporabno. v večini primerov je pa hranjenje na file sistemu boljša praksa.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [jQuery] Zamenjava sličic pri različnih stanjih miškeOddelek: Programiranje | 1457 (1104) | kornilov |
» | Branje slik jpg iz MySQL z PHPOddelek: Izdelava spletišč | 2418 (2036) | a-ptuj1 |
» | [C#] Naključno razporejanje elementov v tabeliOddelek: Programiranje | 2698 (2379) | TheAmunraaa |
» | [PHP] branje slikeOddelek: Programiranje | 3215 (3028) | matijaz74 |
» | Pomoč pri nalaganju večih slik naenkratOddelek: Izdelava spletišč | 838 (688) | winlins |