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 | 1597 (1244) | kornilov |
| » | Branje slik jpg iz MySQL z PHPOddelek: Izdelava spletišč | 2624 (2242) | a-ptuj1 |
| » | [C#] Naključno razporejanje elementov v tabeliOddelek: Programiranje | 2952 (2633) | TheAmunraaa |
| » | [PHP] branje slikeOddelek: Programiranje | 3712 (3525) | matijaz74 |
| » | Pomoč pri nalaganju večih slik naenkratOddelek: Izdelava spletišč | 951 (801) | winlins |