1. Was wird gemacht?
2. Anlegen der Datenbank
3. Erstellen des Uploadformulars und des Datenbankinputs
1) Im Grunde genommen ist es ganz einfach. Wir lesen eine Datei aus einem lokalen Verzeicnis ein und Prüfen ob sie den Anforderungen entspricht. Wenn ja, wird sie in das entsprechende Verzeicnis auf unseren Webserver hochgeladen.
Um Spam bzw. Flooding zu vermeiden, geben wir das Script in sich selbst wieder. Das spart zum Einen Speicher- und Trafficplatz, zum Anderen ist es leichter und weniger Nervenaufreiben... is ja auch klar... es ist ja auch leichter als mit 2 oder 3 Dateien. *g*
2) Da ich das mit den MySQL-Befehlen irgendwie nie so ganz verstanden habe, muss ich es euch auf die Altmodische Art und Weise erklären.
- Logge dich in deinen PHPmyAdmin menü ein
- Erstelle eine neue Tabelle namens "uploadbilder"
- Erstelle dort folgende Zeilen:
bilderid, INT(10), unsigned, NOT_NULL, auto_increment, Primary
bild, VARCAR(200)
kategorie, VARCHAR(200)
Danac erstellt ihr besser auc gleich das uploadverzeichnis "uploadbilder". Dieses Verzeichnis muss im selben Ordner, wie das Uploadscript sein.
3)
Erstellt eine neue Datei namens "bildupload.php" und gebt dort folgendes ein:
(a) Formular:
<form enctype="multipart/form-data" action="#" method="post">
<font face="Verdana">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000">
</font>
<b><font size="1">Dateigröße: max. 3MB erlaubt sind: *.gif | *.jpg | *.png</font></b><font size="2"><br>
</font>Datei:<input name="userfile" type="file" style="font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6" size="20"><font size="2">
</font>Kategorie:<select size="1" name="kategorie" style="font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6">
<option selected>Alles</option>
<option>Kategorie 1</option>
<option>Kategorie 2</option>
<option>Kategorie 3</option>
//.
//.
//.
//.
// u.s.w ... hier könnt ir vareiren
</select><font size="2"> </font>
<input type="submit" name="senden" value="upload" style="font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6"></form>
Direkt unter dieses Formular screibt ihr:
(b) Upload mit antispam
<?php
// Zuerst bauen wir eine Verbindung zur Datenbank auf
$verbindung = mysql_connect ("Host",
"User", "Passwort")
or die ("keine Verbindung möglich.
Benutzername oder Passwort sind falsch");
mysql_select_db("Datenbank")
or die ("Die Datenbank existiert nicht.");
$data = $_FILES['userfile']['name']; // Variable für Filename
$kategorie = $_POST['kategorie']; // Variable für Kategorie
// Ab jetzt fängt die Spamüberprüfung an, damit es keine doppelten Einträge gibt
if($data=="") // wenn leer, mace nix ansonsten gee zur Eintragsprüfung
{
echo "<p></p>";
}
else
{
if(file_exists('uploadbilder/'.$data.'')) // wenn Datei existiert, mace nix
//ansonsten gehe zum Dateiupload uploadbilder ist das uploadverzeichnis
{
echo "Diese Datei existiert bereits. Bitte benennen Sie die Datei um!";
}
else
{
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden.
// In PHP kleiner als 4.0.3 verwenden man copy() und is_uploaded_file() anstatt von
// move_uploaded_file()
//Deklaration der gültigen typen - Hier könnt ihr weitere hinzufügen
$mimearray=array("image/gif", "image/jpeg", "image/pjpeg","image/x-png","image/png");
//Upload verzeichnis
$uploaddir = 'uploadbilder/';
//Prüfen ob Formular gesendet wurde
if($_POST['senden']==true){
// Prüfung auf Gültigkeit des Vordeklarierten MimeTyps
if(in_array($_FILES['userfile']['type'],$mimearray))
{
// dateiupload
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
print "Datei ist gültig und wurde erfolgreich hochgeladen. <br>Debugginginfo:\n";
print "<br>";
print "Name: ".$_FILES['userfile']['name']."<br>";
print "Größe: ".$_FILES['userfile']['size']."<br>";
print "Typ: ".$_FILES['userfile']['type']."<br>";
jetzt folgt der zweite Teil, den ir direkt unter das uploadscript setzt.
(c) Datenbankeintrag muss so aussehen:
$eintrag = "INSERT INTO uploadbilder
(bild, kategorie)
VALUES
('$data','$kategorie')";
$eintragen = mysql_query($eintrag);
if($eintragen == true)
{
echo "Eintrag erfolgreich in die Datenbank eingetragen";
}
}else{
// Fehler beim Dateiupload
print "Fehler beim Dateiupload";
}
}else{
//Fehlermeldung wenn Datei nicht den vordeklarierten MimeTypes entspricht
print $_FILES['userfile']['name']." - ".$_FILES['userfile']['type']." <br>ist nicht für den Upload gestatet";
}
}
}
}
?>
ich hoffe ihr habt alles verstanden... ist ja an sich auch nicht schwer.
Bei Fragen screibt mir einfac eine PM/PN.