PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bildergalerie und Dateiupload



suwofis
16.12.2008, 20:37
hallo

möchte gerne mit php eine bildergalerie anlegen. und zwar so, dass ich bilder in ne sql-datenbank reinspeichere und dann mit ner schleife zeile für zeile auslese und in so ne art html-tabelle ausgebe. bloss hab ich leider noch in keinem tutorial so recht rausgefunden, wie man das mit dem upload macht.
noch ne kurze frage: kann man auch so was programmieren, dass die besucher meiner seite ein photo hochladen können?
wär schön, wenn jemand ne antwort hätte.
vielen dank!

maoshe
16.12.2008, 20:45
seit wann kann man bilder in ne sql speichern?!
nim doch einfach simpleviewer + nem upload script.....

Apex
16.12.2008, 20:47
Hier ist die Index.PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?php
include_once("config.inc.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><-~._.~SkyDogs~._.~-> :: Image Upload</title>
</head>
<body onLoad="addtext('more', 'details')">


<font size="4px" face="Geneva, Arial, Helvetica, sans-serif"><-~._.~SkyDogs~._.~-> :: Image Upload</font></p>
<form name="upload" action="index.php" method="post" enctype="multipart/form-data"><fieldset><legend>Laden Sie ein Bild hoch.</legend>
<table widht="100%" border="0" cellspacing="0" cellpading="0">
<tr>
<td><label class="uploadlabel">Wählen Sie eine Bilddatei:</label></td>
<td><input name="datei" type="file"></td>
</tr>
<td><label class="uploadlabel">Nutzungsbedingungen:</label></td>
<td><input name="nutzung" id="nutzung" checked="checked" type="checkbox">Hiermit aktzeptiere ich die Nutzungsbedingungen.</td>
</tr>
<tr>
<td><label class="uploadlabel">Hochladen:</label></td>
<td><input value="Upload" name="lol" onclick="this.blur(); warten()" style="widht: 95px;" type="submit"><font id="loadlinglogo"></font></td>
</tr>
</table>

</fieldset></form>


<fieldset><legend>Aktion</legend>
<?php
$catdir = $_POST['cat'];
$nutzung = $_POST ["nutzung"];
$comtext = $_POST ["text"];
$comname = $_POST ["name"];
$type = ($_FILES["datei"] ["name"]);
$imagepfad = "$dir/";
$thumbpfad = $imagepfad. "Thumb/";
$neu = mt_rand(000000000, 999999999);
$erweiterung = explode(".", $type);
$dateierweiterung = strtolower($erweiterung[sizeof($erweiterung)-1]);
if($_FILES["datei"]["name"] == ""){
echo "Bitte Bild zum Hochladen ausw&auml;hlen!";
}
else if($_FILES["datei"]["tmp_name"] == ""){
echo "<font color=\"#dd0000\">Fehler bei der &Uuml;bertragung, Datei zu gro&szlig;?</font>";
}
else if (!$nutzung){
echo "<font color=\"#dd0000\">Sie haben die Nutzungsbestimmungen nicht best&auml;tigt.</font>";
}
else if(preg_match('/jpg|jpeg|JPG|JPEG|png|PNG|gif|GIF|psd|PSD/',$erweiterung[1])){

//Datei hochladen
move_upload_file($_FILES["datei"] ["tmp_name"],
"$imagepfad$neu.$dateierweiterung");
$datei = "$imagepfad$neu.$dateierweiterung";
$thumb = "$thumbpfad$neu.$dateierweiterung";
chmod($datei, 0777);
$imgsize2 = getimagesize("$datei");
$imagewidth = $imagesize2[0];
$imageheight = $imagesize2[1];
$size = filesize($datei);
$size = $size/1024;
$size = round($size,2);
$mbsize = $size/1024;
$mbsize = round($mbsize,2);
//Thumb erstellen
if (preg_match('/jpg|jpeg|JPG|JPEG|png|PNG|gif|GIF/',$erweiterung[1])){
if ($imagewidth < $gtw && $imageheight < $gth){
$imageheightn = $imageheight;
$imagewidthn = $imagewidth;
}
else{
$imagewidthn = $gtw;
$calc2 = $imagewidth/$imagewidthn;
$imageheightn = $imageheight/$calc2;
$imageheightn = round($imageheight,0);
if ($imageheightn > $gth){
$imageheightn2 = $gth;
$calc = $imageheightn/$imageheightn2;
$imageheightn = $imageheightn2;
$imagewidthn = $imagewidthn/$calc;
$imagewidthn = Round($imagewidthn,0);

}
}
if (preg_match('/jpg|jpeg|JPG|JPEG/', $erweiterung[1])){
$create=imagecreatefromjpeg($datei);
}

if (preg_match('/png|PNG/',$erweiterung[1])){
$create=imagecreatefrompng($datei);
}

if (preg_match('/gif|GIF/',$erweiterung[1])){
$create=imagecreatefromgif($datei);
}

$dst_img=ImageCreateTrueColor($imagewidthn, $imageheightn);
imagecopyresampled($dst_img,$create,0,0,0,0,$image widthn, $imageheightn,$imagewidth,$imageheight);


if (preg_match("/png|PNG/",$erweiterung[1])){
imagepng($dst_img,$thumb);
}
if (preg_match("/gif|GIF/",$erweiterung[1])){
imagegif($dst_img,$thumb);
}
else {
imagejpeg($dst_img,$thumb);
}
chmod($thumb,0777);
imagedestroy($dst_img);
imagedestroy($create);
}
echo 'Die Bilddatei wurde erfolgreich hochgeladen!

';
echo '<fieldset class="add"><legend id="detailslegend">content/plus.gif (javascript:addtext(\'more\', \'details\')) mehr Details</legend><div id="details">Erhalten Sie mehr Informationen &uuml;ber das hochgeladene Bild.</div></fieldset>';

}

else{
echo "<font color=\"#dd0000\">Datei Typ ist ung&uuml;ltig/keinBild!!</font>";
}

echo '<script type="text/javascript">
function addtext(was, wo){
if (wo == "details"){
if (was == "more"){
document.getElementById(wo).innerHTML=\'Die Datei ist '.$size.' KB gro&szlig;, das sind '.$mbsize.' MB.';
if(preg_match('/jpg|jpeg|JPG|JPEG|png|PNG|gif|GIF/',$erweiterung[1])){
echo'.
Die Aufl&ouml;sung betr&auml;gt '.$imagewidth.' x '.$imageheight.' Pixel.

<a href="'.$datei.'"'.$thumb.'</a>';
}
echo'

Der Link:
<input name="textfield1" type="text" value="'.$url.'/'.$datei.'" size="55" onClick="select();focus();">

</p>In die Website einbauen:
<input name="textfield2" type="text" value="<a href=&quot;'.$url.'/'.$datei.'&quot; target=&quot;_blank&quot;><img src=&quot;'.$url.'/'.$dir.'/'.$thumb.'&quot;></a>" size="55" onClick="select();focus();">

PHP-BB-Code (f&uuml;r Forum etc.)
<input name="textfield3" type="text" value="'.$url.'/'.$dir.'/'.$thumb.' ('.$url.'/'.$datei.')" size="55" onClick="select();focus();">
\';
document.getElementById(wo + "legend").innerHTML=\'content/minus.gif (javascript:addtext(&#39;less&#39;, &#39;details&#39;)) weniger Details\';
}
else if (was =="less"){
document.getElementById(wo).innerHTML=\'Erhalten Sie mehr Informationen &uuml;ber das hochgeladene Bild.\';
document.getElementById(wo + "legend").innerHTML=\'content/plus.gif (javascript:addtext(&#39;more&#39;, &#39;details&#39;)) mehr Details\';
}
}
}
</script>';
?>
</fieldset>loading,gif

</body>
</html>

Und das ist die Config.inc.php

<?php
//#######Config Anfang#######
//URL Einstellungen

//Domain + Pfad zur imageupload index.php datei
$url = "URL Zur index.php";

//Imagepfad, ausgehend von $url
$dir = "user";


//#######Thumbs#######
//galeriethumbheight - max höhe minithumb
$gth = 400;

//galeriethumbwidth - max breite bei galerieansicht
$gtw = 400;

?>

Das Ding speichert die Bilder in einem extra Ordner und hat weitere Funktionen wie Thumbnail etc.

maoshe
16.12.2008, 20:51
alter, hast du ne macke? wozu haben wir ein eigenes nopaste, wenn es dann leute, wie dich gibt, die einfach so nen fetten source posten?!
http://nopaste.free-hack.com/index.php?id=b262212e64
http://nopaste.free-hack.com/index.php?id=5b517385e9


ps: genau aus diesem grund bin ich noch immer für die einführung von

Apex
16.12.2008, 20:52
Keine Lust gehabt ;)

suwofis
16.12.2008, 20:53
ok danke erstmal. werde mal versuchen, das ding nachzuvollziehen und verushcen, was über simpleviewer rauszufinden. davon hab ich bisher noch nix gehört

2called-chaos
16.12.2008, 22:13
seit wann kann man bilder in ne sql speichern?!
nim doch einfach simpleviewer + nem upload script.....

Seit BLOB (http://de.wikipedia.org/wiki/Binary_Large_Object)

Mfg

Chaos

PS: Ich sage nicht das diese Variante vorzuziehen ist