Archiv für 21. Juli 2010

PHP: Einfacher Foto-Upload / Foto-Upload-Script

Hier demonstrieren wir euch kurz und knapp, wie man einen einfachen Upload für Benutzer-Fotos bewerkstelligt.

So könnte das Upload-Formular (HTML) aussehen:

<form name="foto" method="post" action="upload.php" enctype="multipart/form-data">
	<p>
		<b>Foto-Upload:</b><br />
		<input type="file" name="pict" />
		<input type="submit" name="button" value="Hochladen" />
	</p>
</form>

Und so sieht das einfache und eher funktioniell aufgebaute PHP-Script (upload.php) für den Foto-Upload aus:

	$user['id'] = 1;				// Die Id-Nummer des gerade eingeloggten Benutzers
	$uploaddir = "uploads/userpics/";	// Der Ordner in den die hochgeladenen Bilder gespeichert werden sollen

	// Prüfen ob Bild hochgeladen
	if (isset($_FILES['pict']['tmp_name'])) {
		// Prüfen ob es sich um ein Bild handelt
		if ($size=getimagesize($_FILES['pict']['tmp_name'])) {
			$fileends = explode(".",$_FILES['pict']['name']);
			$fileend = $fileends[count($fileends) - 1];
			$filepath = $uploaddir.$user['id']."_".time().".".$fileend;
			if(!move_uploaded_file($_FILES['pict']['tmp_name'],$filepath)){
				die ("Die hochgeladene Datei konnte nicht in den Upload-Order verschoben werden!");
			} else {
				// Altes Foto löschen
				if (isset($user['foto']) AND $user['foto'] != "" AND file_exists($user['foto'])) {
					unlink ($user['foto']);
				}
				// Datenbank aktualisieren
				mysql_query("UPDATE users SET foto = '".$filepath."' WHERE id = '".$user['id']."';");
				$user['foto'] = $filepath;
			}
		} else {
			die ("Bei der hochgeladenen Datei handelt es sich nicht um eine Bild-Datei");
		}
	} else {
		die ("Es wurde keine Datei zum Upload ausgewählt, oder der Upload ist gescheitert!");
	}

	echo "Das ausgewählte Foto wurde erfolgreich hochgeladen und gespeichert.";

Zu Beachten: Bei diesem Script wird die Benutzer-Datenbank aktualisiert.
Die dazu nötige Datenbank-Tabelle hat den Namen “users” mit mindestens den Feldern “id” und “foto”.

Newsletter
Kalender
Juli 2010
M D M D F S S
« Jun   Aug »
 1234
567891011
12131415161718
19202122232425
262728293031