kleine gallery [frage wie ich bildgröße ändern kann]
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beitrag
bild
byte
datei
dateiname
dune
eintrag
error
extension
fehler
filter
hochladen
kategorie
logik
pattern
result
tabelle
textdatei
update
username
-
hallo.
ich habe eine frage an die gro?en genies die php k?nnen^^
ich habe folgendes ziel: ich will mir f?r meine seite einen upload bauen, und eine seite, wo die bilder aus dem ordner ausgelesen werden.
das h?tte ich bereits geschafft (dank 2 scripten die ich hier auf lima gefunden habe^^). nur jetzt ist mein problem, dass die bilder alle unterschiedlich gro? sind und ich keine ahnung hab, wie ich das in den griff bekommen k?nnte. und das n?chste problem ist, dass sie immer untereinander sind.
hier mal den code:
upload.php
<?php function filesizepre($filesize){ return round( ($filesize / 1024),1 )."kB"; } $filter['gif']=""; $filter['jpg']=""; $filter['jpeg']=""; $filter['GIF']=""; $filter['JPG']=""; $filter['JPEG']=""; $filtertyp='onlythis'; // onlythis f?r nur das oder nonethis f?r nichts von dem, kapiert? ^^ $maxsize="10000000000"; // 100000 = ca. 100 KB $upload_dir='upload/'; //unbedingt nachher ?ndern if(!empty($datei)) { $dateiname=$datei_name; $dateiinfo=pathinfo($datei_name); $filterok=false; if (!isset($filter[$dateiinfo['extension']]) && $filtertyp=='nonethis') { $filterok=true; } elseif (isset($filter[$dateiinfo['extension']]) && $filtertyp=='onlythis') { $filterok=true; } if($filterok && $datei_size <=$maxsize) { $z=0; while(file_exists($upload_dir.$dateiname)) { $z++; $dateiname="($z)_".$datei_name; } copy($datei,$upload_dir.$dateiname); if( file_exists($upload_dir.$dateiname)) { echo "<br><b>$dateiname</b> wurde mit <b> $datei_size Byte</b> erfolgreich hochgeladen.<BR> <b></b>"; //text nach upload chmod ("$datei", 0777); # Hier lass ich angemeldete user das bild in user machen aber... bist jetzt habe ich das nur bei jpg xD wenn du das m?chtest dann # das entfernen =) #rename("upload/$dateiname", "upload/$username.jpg"); #Das ist nur so als beispiel.. ich benutzte das kannst ja gebrauchen.. #$aendern = "UPDATE user SET foto ='$upload_dir$username.jpg' WHERE username = '$username'"; #$update = mysql_query($aendern); } else { echo "Die Datei-?bertragung ist fehlgeschlagen!<BR>"; } } elseif($datei_size >$maxsize) { echo "Die Datei-Gr??e ist mit einer Gr??e von $datei_size Bytes ?ber dem Limit ($maxsize Bytes)!<BR>"; } elseif(!$filterok) { echo "<b>Fehler:</b> "; echo "Es d?rfen nur Bilder mit .gif, .jpg und .jpeg hochgeladen werden.<BR>"; } } ?> <div align="center"><form enctype='multipart/form-data' action='<?php echo"upload.php?seite=upload&site=upload"; ?>' method='post' id=form1 name=form1> <input type='hidden' name='check' value='1'/> <input type='file' id='field2' name='datei' value='Foto durchsuchen'/><br/> <input type='submit' value='hochladen'/ id='field' id='submit'1 name='submit'1><br/> </form></div> <BR> <?php $verzeichnis = opendir("upload"); // $pattern = ".|..|"; $pattern = ".|"; echo " <br/><br/>\n"; ?>
das w?re der upload.
jetzt die datei zum auslesen der bilder:
auslesen.php
<?php function getImages($path) { $result = array(); $handle = opendir($path); while($file = readdir($handle)) { if($file != "." && $file != "..") { if(!is_dir($file)) { $sub = substr($file,-4); if($sub == ".jpg" || $sub == ".gif" || $sub == ".png") $result[]=$file; } } } return $result; } $bilder = getImages("./upload/"); if(is_array($bilder)) { for($i=0; $i<count($bilder); $i++) { echo "<img src=\"./upload/".$bilder[$i]."\"><br>\n"; } } ?>
was m?sste ich dazu bauen bzw ?ndern, damit die bilder alle sagen wir 150x150 pixel gro? sind?
falls jmd sagt, das ist totaler m?ll, und es gibt bessere m?glichkeiten, dann her damit bitte =D
wichtig dabei ist nur, dass ich kein mysql ben?tige. :/
kann mir da jmd helfen?
danke
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
also, wenn du nur bvei der ausgabe die gr??e gleich haben willst, dann: echo "<img src=\"./upload/".$bilder[$i]."\" width=deinegroe?e height=deinehoehe><br>\n";
nat?rlich erstezen durch z.b. width=230 height=180 oder so...
am besten ist es aber, du gibst nur eins an, die h?he bzw breite passt sich dem anderen dann an, so enstehen keine verziehungen des bildes.
oder du kannst alle direkt beim hochladen zu einer gr??e machen lassen mit getimagesize() und imagecopyresized()
mfg
dune -
das mit der bildgr??e funktioniert einmalig :) vielen dank =D
die bilder sind alle gleich gro?, sind mit der digicam gemacht worden =)
w?re das jetzt schwer, hier noch kathegorien einzubauen?
w?re das auch mit textdateien m?glich? also dass die kathegorien in die textdatei geschrieben wird, sprich kathegorie namen + pfad (upload/1) und dass dann ausgelesen wird?
oder w?re ich da mit mysql besser dran?
Beitrag ge?ndert am 29.03.2006 17:57 von skullsplitter -
ich w?rde dir es wie folgt raten mit db:
Eine Tabelle enthalten alle Katigorien.
Und dann eine Tabelle in der speicherst du die Links zu den Bildern und die ID der Katigorien und dann kannst du die ja nur die Links der Bilder ausgeben lassen die auch zur jeweiligen Katigorie geh?hren. -
Wenn du es unbedingt mit textdateien machen willst:
Also eine datei in der der Kat. Name und pfad wie folgend steht:
Name#pfad
Name2#pfad2
etc. (achtung nach jedem pfad muss ein zeilenumbruch!!!)
dann f?r die ?bersicht der kategorien
$lines = file ('textdatei.dat'); //liest die datei in array, jedes array ist ein zeile foreach($lines AS $line) { $dat = explode('#',$line); //zerlegt den string wiederum in das was vorm # und das was danach ist echo '<A HREF="show_gal.php?cat='.$dat[0].'&path='.$dat[1].'">'.$dat[0].'</A><BR>'; }
jetzt die datei um die gallerien zu zeigen (show_gal.php):
$_GET['cat']; //name der Kategorie $_GET['path']; //pfad zu der Kategorie
-
ich sag es euch wie es ist, ich bin php anf?nger (als richtiger^^)
ich hab mir jetzt noch als ziel gesetzt, kathegorien erstellen zu k?nnen (online)
$name = $_POST['name']; $pfad = $_POST['pfad']; $datei = fopen("cats.dat", "r+"); $eintrag = ("$name#$pfad"); fwrite($datei, $eintrag); fclose($datei); echo "Kathegorie gespeichert!";
das habe ich jetzt mal geschrieben... ich wei? nicht ob die logik stimmt ...
er bringt mir diesen fehler:
Parse error: syntax error, unexpected T_VARIABLE in cats.php on line 4
das forumlar sieht wie folgt aus:
<html><head><title>blub</title></head>
<body>
<a href="upload.php">bild hochladen</a><br>
<a href="fotos.php">bilder</a><br>
<a href="creat.htm">neue kathegorie</a><br><br>
<form action="cats.php" method="post">
Name der Kathegorie bitte eingeben:<br>
<input type="Text" name="name"><br>
<input type="Text" name="pfad"><br>
<input type="Submit" value="Absenden">
</form>
</body>
</html>
was ich auch noch nicht ganz kapiert hab, ist wie die pfad angabe sein muss in der textdatei?
vielen herzlichen dank :)
mfg
Beitrag ge?ndert am 30.03.2006 16:39 von skullsplitter -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage