Jeg tager lige den kode forfra. Nu med forklaring.
<?php
// HER INDSÆTTES DATABASE CONNECT
// This function makes usage of
// $_GET, $_POST, etc... variables
// completly safe in SQL queries. Ellers ville du risikere hacker angreb via SQL injuctions.
function sql_safe($s)
{
if (get_magic_quotes_gpc())
$s = stripslashes($s);
return mysql_real_escape_string($s);
}
// hvis show er sat så skal der i findes billedet ud fra show som er id
if (isset($_GET['show']))
{
// alloker ID
$id = intval($_GET['show']);
// sql select, hvor der max returneres 1 (LIMIT 1)
$result = mysql_query("SELECT id, type, size, content FROM upload WHERE id=$id LIMIT 1");
// hvis der ikke var nogen result findes billedet ikke og der udskrives "no image"
if (mysql_num_rows($result) == 0)
die('no image');
// lav result som er et array om til værdier af databasen
list($id, $type, $size, $content) = mysql_fetch_row($result);
// Følgende sætter cache tiden (den tid der går før en browser skal hente dem igen
// 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('Expires: '.gmdate('D, d M Y H:i:s', $image_time + 86400*365).' GMT',
true, 200);
// Følgende er nødvendig for at dine billeder bliver opfatter som billeder, ellers bliver de opfattet som tekst
// altså: Øÿà�JFIF�� osv.
// outputing HTTP headers
header('Content-Length: $size);
header("Content-type: $type");
// outputing image
echo $data;
// exit betyder at der ikke udføres flere ting på php-siden (så der ikke kommer tekst sammen med billedet)
exit();
}
// herefter den der viser billeder hvis show ikke er sat
$result = mysql_query("SELECT id FROM {$table} ORDER");
if (mysql_num_rows($result) == 0) // table is empty
echo '<ul><li>No images loaded</li></ul>';
else
{
echo '<ul>';
while(list($id) = mysql_fetch_row($result))
{
// outputing list
echo "<img alt='$id' src='{$PHP_SELF}?show={$id}' />
}
echo '</ul>';
}
?>
Håber det kan bruges.
Generelt. Sæt content-type som "image/jpeg" eller "image/png" osv. ellers bliver det læst som tekst