Hi,
ich habe mir eine Art Gallery gecoded. Sie soll die Bilder zu Thumbnails resizen, eine Löschmöglichkeit bieten, und die Möglichkeit des Hochladens bieten.
Das funktioniert ja auch alles soweit ich das sehe, aber ein Problem habe ich:
Bei jedem Aufrufen der Seite werden immer neue Thumbnails erstellt.
Dagegen habe ich in Zeile 59 eine If-Schleife eingebaut.
Jedoch wird der "echo"-Befehl der If-Schleife ausgeführt ("file existiert!" - 2mal), UND zusätzlich
werden die Thumbnails neu generiert. (else-Schleife)
Genug geredet, hier der Code:
edit: sorry für den Scrollbalken, bin schon am bearbeiten^^
ich habe mir eine Art Gallery gecoded. Sie soll die Bilder zu Thumbnails resizen, eine Löschmöglichkeit bieten, und die Möglichkeit des Hochladens bieten.
Das funktioniert ja auch alles soweit ich das sehe, aber ein Problem habe ich:
Bei jedem Aufrufen der Seite werden immer neue Thumbnails erstellt.
Dagegen habe ich in Zeile 59 eine If-Schleife eingebaut.
Jedoch wird der "echo"-Befehl der If-Schleife ausgeführt ("file existiert!" - 2mal), UND zusätzlich
werden die Thumbnails neu generiert. (else-Schleife)
Genug geredet, hier der Code:
edit: sorry für den Scrollbalken, bin schon am bearbeiten^^
PHP-Code:
<table cellpadding="0" cellspacing="5" border="0">
<tr>
<td><a href="index.php?site=pic_upload&action=upload">
Neues Bild hochladen</a></td>
</tr>
<?php
$_REQUEST['action']=$action;
//Wenn auf Upload geklickt wurde, aber noch nichts hochgeladen wurde:
if($action=="upload"&&!isset($_FILES['datei'])){
?>
<form action="index.php?site=pic_upload&action=upload" method="post"
enctype="multipart/form-data">
<input type="file" name="datei" /><br>
<input type="submit" value="Hochladen" />
</form>
<?php
}
//Wenn schon was hochgeladen wurde
if($action=="upload"&&isset($_FILES['datei'])){
move_uploaded_file($_FILES['datei']['tmp_name'], "../images/".$_FILES['datei']['name']);
echo "Bild sollte nun hochgeladen sein.
<br>Link:<a href='../images/".$_FILES['datei']['name']."
'>".$_FILES['datei']['name']."</a>";
}
//Löschfunktion
if(isset($_POST['delete'])){
$datei=$_POST['dateiname'];
unlink($datei);
echo "Bild erfolgreich gelöscht (?)";
}
//Bilder darstellen
$i=0;
$pfad="../images/";
$verz=opendir($pfad);
while($file[$i]=readdir($verz)) {
if (filetype($pfad.$file[$i])!="dir"){
$link[$i]=$pfad.$file[$i];
$i++;
}
}
while($i>=0){
//Bild zu Thumbnail
$size=getimagesize($link[$i]);
$breite[$i]=$size[0];
$hoehe[$i]=$size[1];
$neueBreite=200;
$neueHoehe=300;
if(file_exists("../images/TN".$file[$i])){
echo "file existiert!";
}else{
if($size[2]==1) {
// GIF
$altesBild[$i] = imagecreatefromgif($link[$i]);
$neuesBild[$i] = imagecreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild[$i],$altesBild[$i],0,0,0,0,
$neueBreite,$neueHoehe,$breite[$i],$hoehe[$i]);
imageGIF($neuesBild[$i],$pfad."TN".$file[$i]);
}
if($size[2]==2) {
// JPG
$altesBild[$i] = imagecreatefromjpeg($link[$i]);
$neuesBild[$i] = imagecreate($neueBreite,$neueHoehe);
imagecopyresized($neuesBild[$i],$altesBild[$i],0,0,0,0,
$neueBreite,$neueHoehe,$breite[$i],$hoehe[$i]);
imagejpeg($neuesBild[$i],$pfad."TN".$file[$i]);
}
if($size[2]==3) {
// PNG
$altesBild[$i] = imagecreatefrompng($link[$i]);
$neuesBild[$i] = imagecreate($neueBreite,$neueHoehe);
imagecopyresized($neuesBild[$i],$altesBild[$i],0,0,0,0,
$neueBreite,$neueHoehe,$breite[$i],$hoehe[$i]);
imagepng($neuesBild[$i],$pfad."TN".$file[$i]);
}
}
$thumbnail[$i]=$pfad."TN".$file[$i];
?>
<tr>
<td rowspan="2">
<img src='<?php echo $thumbnail[$i]; ?>' border='0' />
</td>
<td valign="top">
<?php echo $file[$i]; ?>
<form action="index.php?site=pic_upload" method="post">
<input type="checkbox" name="delete"/>Löschen<br /><input type="submit"
value="Senden" />
<input type="hidden" name="dateiname" value="<?php echo $link[$i]; ?>" /></form>
</td>
</tr>
<?php
$i--;
}
closedir($verz);
?>
</table>
Kommentar