Moin,
Ich habe einen Bildupload in php gefunden doch leider speichert er die Bilder nicht im Ordner ab.
Weiß vielleicht einer warum ?
Spoiler anzeigen
<?php
/*
echo "<pre>";
echo "FILES:<br />";
print_r ($_FILES );
echo "</pre>";
*/
if ( $_FILES['uploaddatei']['name'] <> "" )
{
// Datei wurde durch HTML-Formular hochgeladen
// und kann nun weiterverarbeitet werden
// Kontrolle, ob Dateityp zulässig ist
$zugelassenedateitypen = array("image/png", "image/jpeg", "image/gif");
if ( ! in_array( $_FILES['uploaddatei']['type'] , $zugelassenedateitypen ))
{
echo "<p>Dateitype ist NICHT zugelassen</p>";
}
else
{
// Test ob Dateiname in Ordnung
$_FILES['uploaddatei']['name'] = dateiname_bereinigen($_FILES['uploaddatei']['name']);
if ( $_FILES['uploaddatei']['name'] <> '' )
{
move_uploaded_file (
$_FILES['uploaddatei']['tmp_name'] ,
'hochgeladenes/'. $_FILES['uploaddatei']['name'] );
echo "<p>Hochladen war erfolgreich: ";
echo '<a href="hochgeladenes/'. $_FILES['uploaddatei']['name'] .'">';
echo 'hochgeladenes/'. $_FILES['uploaddatei']['name'];
echo '</a>';
}
else
{
echo "<p>Dateiname ist nicht zulässig</p>";
}
}
}
function dateiname_bereinigen($dateiname)
{
// erwünschte Zeichen erhalten bzw. umschreiben
// aus allen ä wird ae, ü -> ue, ß -> ss (je nach Sprache mehr Aufwand)
// und sonst noch ein paar Dinge (ist schätzungsweise mein persönlicher Geschmach
$dateiname = strtolower ( $dateiname );
$dateiname = str_replace ('"', "-", $dateiname );
$dateiname = str_replace ("'", "-", $dateiname );
$dateiname = str_replace ("*", "-", $dateiname );
$dateiname = str_replace ("ß", "ss", $dateiname );
$dateiname = str_replace ("ß", "ss", $dateiname );
$dateiname = str_replace ("ä", "ae", $dateiname );
$dateiname = str_replace ("ä", "ae", $dateiname );
$dateiname = str_replace ("ö", "oe", $dateiname );
$dateiname = str_replace ("ö", "oe", $dateiname );
$dateiname = str_replace ("ü", "ue", $dateiname );
$dateiname = str_replace ("ü", "ue", $dateiname );
$dateiname = str_replace ("Ä", "ae", $dateiname );
$dateiname = str_replace ("Ö", "oe", $dateiname );
$dateiname = str_replace ("Ü", "ue", $dateiname );
$dateiname = htmlentities ( $dateiname );
$dateiname = str_replace ("&", "und", $dateiname );
$dateiname = str_replace ("+", "und", $dateiname );
$dateiname = str_replace ("(", "-", $dateiname );
$dateiname = str_replace (")", "-", $dateiname );
$dateiname = str_replace (" ", "-", $dateiname );
$dateiname = str_replace ("\'", "-", $dateiname );
$dateiname = str_replace ("/", "-", $dateiname );
$dateiname = str_replace ("?", "-", $dateiname );
$dateiname = str_replace ("!", "-", $dateiname );
$dateiname = str_replace (":", "-", $dateiname );
$dateiname = str_replace (";", "-", $dateiname );
$dateiname = str_replace (",", "-", $dateiname );
$dateiname = str_replace ("--", "-", $dateiname );
// und nun jagen wir noch die Heilfunktion darüber
$dateiname = filter_var($dateiname, FILTER_SANITIZE_URL);
return ($dateiname);
}
?>
<form name="uploadformular" enctype="multipart/form-data" action="dateiupload.php" method="post" >
Datei: <input type="file" name="uploaddatei" size="60" maxlength="255" >
<input type="Submit" name="submit" value="Datei hochladen">
</form>