Hallo liebe PHP-Community.
Ich bin gerade dabei, für eine Homepage eine kleine Gallerie zu programmieren, und dabei kommt man natürlich um ein Uploadskript für Bilder nicht herum.
Also habe ich ein bisschen im Internet geforscht und dann dieses Skript geschrieben:
Die Funktion "func_filename" habe ich selber definiert um Dateinamen wie "Cooles Bild lölölöl voll kraß.jpg" zu vermeiden. Sie sieht folgendermaßen aus:
Die Formulardatei, von der aus auf das Skript gelinkt wird, sieht so aus:
Wenn ich nun damit ein Bild hochladen will, erscheint keine Fehlermeldung. Im Gegenteil, er liefert mir sogar das Ergebnis "Datei ist auf dem Server!", also ist ja offensichtlich kein Fehler aufgetreten.
Wenn ich aber auf dem Server nachschaue, ist weder die Datei noch das zugehörige Thumbnail hochgeladen worden.
Die Dateistruktur auf dem Server sieht folgendermaßen aus:
Ich hoffe, ihr könnt mir helfen =)
Ich bin gerade dabei, für eine Homepage eine kleine Gallerie zu programmieren, und dabei kommt man natürlich um ein Uploadskript für Bilder nicht herum.
Also habe ich ein bisschen im Internet geforscht und dann dieses Skript geschrieben:
PHP-Code:
<?
$extensions=explode(",", "jpeg,jpg");
if ($_FILES['userfile']['tmp_name']<>'none'){
$file=$_FILES['userfile']['name'];
$temp=$_FILES['userfile']['tmp_name'];
if(filesize($temp)<="512000") {
$path_parts=pathinfo($file);
if(in_array($path_parts["extension"], $extensions)) {
$filename=func_filename($file);
$dest="uploads/";
$size=getimagesize($temp);
$width=$size[0];
$height=$size[1];
$pic_old=imagecreatefromjpeg($temp);
$pic_new=imagecreate(100,100);
imagecopyresized($pic_new,$pic_old,0,0,0,0,100,100,$width,$height);
imagejpeg($pic_new,$dest."thumbs/".$filename);
copy($temp, $dest.$filename);
echo 'Datei ist auf dem Server!';
}
else {
echo 'Datei hat eine ungültige Endung. Nur *.jpg und *.jpeg sind erlaubt.';
}
}
else {
echo 'Datei ist zu groß. Bitte auf 500 kB begrenzen.';
}
}
?>
PHP-Code:
function func_filename($name) {
$filename=strtolower($name);
$filename=ereg_replace(" ", "_", $filename);
$filename=ereg_replace("ä", "ae", $filename);
$filename=ereg_replace("ö", "oe", $filename);
$filename=ereg_replace("ü", "ue", $filename);
$filename=ereg_replace("ß", "ss", $filename);
return $filename;
}
Code:
<h1>Bild hochladen</h1> <p> <form method="post" enctype="multipart/form-data" action="index.php?page=do_upload"> <input type="hidden" name="MAX_FILE_SIZE" value="512000"> <input name="userfile" type="file"><br><br> <input type="submit" value="Hochladen"> </form> </p>
Wenn ich aber auf dem Server nachschaue, ist weder die Datei noch das zugehörige Thumbnail hochgeladen worden.
Die Dateistruktur auf dem Server sieht folgendermaßen aus:
Code:
Hauptverzeichnis / - panic / - - uploads / (Für die großen Bilder) - - - thumbs / (Für die Thumbnails) - upload.php (Die Forumlardatei) - do_upload.php (Die PHP-Datei mit dem Skript)
Kommentar