Hey zusammen,
ich habe ein Bilderupload erstellt. Funktioniert auch.
Ein Problem habe ich dennoch. Wenn ich nun überprüfen möchte ob der index bild leer ist kommt nie die Fehlermeldung, obwohl man nix abgesendet hat. Oder es kommt die Fehlermeldung aber diese bleibt dauerhaft bestehen. Ich weiß nich warum das so ist...
Mein Code:
PHP
<?php
/*
$_FILES['userfile']['name'] = liefert den Dateinamen
$_FILES['userfile']['type'] = Mime-Type der Datei
$_FILES['userfile']['size'] = Die Größe der hochgeladenen Datei in Bytes.
$_FILES['userfile']['tmp_name'] = Pfad zum Temp-Verzeichnis
*/
if (isset($_FILES['bild'])) {
//Error als array
$error = array();
//Array Daten von $_FILES in Variablen speichern
$mime_type = $_FILES['bild']['type'];
$size = $_FILES['bild']['size'];
$tmp_pfad = $_FILES['bild']['tmp_name'];
$name = $_FILES['bild']['name'];
// Folder, in den die Bilder hochgeladen werden sollen
$upload_folder = 'bilder/';
// Hochzuladende Datei
$upload_data = $upload_folder . $_FILES['bild']['name'];
//Zugelassene Endungen & Größe
$erlaubte_endungen = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');
$erlaubte_size = 500 * 2048; // = 1,024 mb
//Errorbehandlung
/* Hier die erste if-anweisung */
if(empty($_FILES['bild'])){
$error[] = '<p class="fehler">Bitte fügen sie ein Bild zum hochladen ein!</p> ';
} else
if(!in_array($mime_type, $erlaubte_endungen)){
$error[] = '<p class="fehler">Sie dürfen nur Bilder mit folgenden Endungen hochladen : jpg, jpeg, png, gif!</p> ';
} else if(file_exists($upload_data)){
$error[] = '<p class="fehler">Das Bild ist mit diesem Namen schon vorhanden! </p> ';
}
if($size > $erlaubte_size){
$error[] = '<p class="fehler">Sie dürfen nur Bilder mit einer maximalen Größe von 1,024mb hochladen! </p> ';
}
//Keine Fehler vorhanden ? Upload in Folder
if(count($error) === 0){
if(move_uploaded_file($tmp_pfad, $upload_data)){
$erfolgreich = '<p class="erfolgreich"> Ihr Bild <span class="bold">' . htmlspecialchars($name) . '</span> wurde erfolgreich hochgeladen!</p>';
} else{
$error[] = '<p class="fehler">Das Bild konnte nich hochgeladen werden! </p> ';
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Bilderupload</title>
<style>
span.bold{
font-weight: bold;
}
p.fehler{
color: red;
}
p.erfolgreich{
color: green;
}
</style>
</head>
<header>
<h3>Bilderupload</h3>
</header>
<main>
<form method="post" enctype="multipart/form-data">
<label for="bild_input">Bild hochladen: <input type="file" name="bild" id="bild_input"></label>
<input type="submit" name="image" value="Bild hochladen!">
<p> Info: Sie dürfen Bilder mit den Endungen <span class="bold">jpg</span>, <span class="bold">jpeg</span>, <span class="bold">png</span> und <span class="bold">gif</span> hochladen. <br>
Die Größe darf maximal <span class="bold">500kb</span> sein!</p>
</form>
<?php
if(isset($error) && count($error) > 0){
echo implode('', $error);
} else if (isset($erfolgreich) && count($error) == 0){
echo $erfolgreich;
}
?>
</main>
<body>
</body>
</html>
Alles anzeigen
Eine weiter Frage habe ich. Was haltet ihr davon wenn man die Dateipfade zu den Bildern in die DB speichert ?
Gruß,
Stef