PHP Upload Problem

godofkills

Lt. Commander
Registriert
Dez. 2009
Beiträge
1.997
Hallo,
ich würde gerne über dieses Formular:

<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000000000000000000000000">
Bild auswaehlen: <input name="userfile" type="file">
</br>
</br>
</br>
<input type="submit" value="Hochladen" name=upload>
</form>


Eine Datei Senden, und zwar an diese php Funktion

echo $_FILES['userfile']['error'];
if(move_uploaded_file($_FILES['userfile']['tmp_name'],'user_pic/'.$akt_user_ID.'.jpg'))
{
echo "geht ";
}

Doch sobald eine Datei größer ist als ca. 50kb kommt diese Fehlermeldung "2" ( echo $_FILES['userfile']['error'] ; )

Laut dieser Seite
bedeutet das, dass die Dateigröße zu groß wäre, da der Upload durch MAX_FILE_SIZE begrenzt wurde.
Doch habe ich ich mehrere Werte deutlich über einem MB ausprobiert und trotzdem funktionierte es nicht, ich habe auch die Zeile mal entnommen, und trotzdem wurde mir gesagt, Datei zu groß.
Wisst ihr vielleicht wo der Fehler ist?
 
Vielleicht solltest Du deinen Code auch in solchen einbinden:
PHP:
 oder [HTML] ....


Hast Du mal in deiner Config Datei geschaut was dass max ist?

Erstelle eine Datei info_php.php

mit folgenden Inhalt:

[PHP]
<?PHP
echo phpinfo();
?>

Dann überprüfe ob der Ordner die erforderlichen Rechte besitzt...

Dann gestalte deine Datei mal um...
 
Der Code is schon im richtigen tag. Das ist jetzt nur ein Auszug. Werde mal eben mit der info_php machen
Ergänzung ()

post_max_size 6M


Der Wer sollte doch OK sein.
 
Ich meinte hier auf der CB-Kommentaren Seite -.-

Du kannst Dir ja auch mal ausgeben lassen was übergeben wird:

PHP:
echo print_r($_FILES);

Vielleicht siehst Du da ja den Fehler!

In der tat, dass reicht, dann läuft was am script falsch, versuche mal folgendes:


PHP:
    // Ueberpruefung der Dateiendung
    // Dateiendung ermitteln
    $str_file_ext = substr( strtolower( strrchr($_FILES['userfile']['name'], '.') ), 1 );
    // Array der zulaessigen Endungen
    $idxarr_allowed_ext = array('gif', 'jpg', 'png');
    // Ueberpruefung der Dateiendung
    if ( empty($str_file_ext) OR !in_array($str_file_ext, $idxarr_allowed_ext) ) {
    
        echo "Sie dürfen nur Bilder in den Formaten ( Gif, jpg, und PNG ) Hochladen!<br /><br><a href=upload.php><b>Zurück</b></a>";
        exit;
    }

    // Ueberpruefung der Dateigroesse
    // maximal erlaube Dateigroesse in Bytes
    $int_max_filesize = 2000000;
    // eigentliche Ueberpruefung
    if ($_FILES['userfile']['size'] > $int_max_filesize) {
        echo "Die Datei ist größer als erlaubt!<br /><br><a href=upload.php><b>Zurück</b></a>";
        exit;
    }


    // Zusammensetzen des vollen Pfades zum Ziel
    $str_ziel = 'user_pic/'.$akt_user_ID.
                $_FILES['userfile']['name'];
    // eingentlicher Transfer
    move_uploaded_file($_FILES['userfile']['tmp_name'], $str_ziel);
    // Zugriffsrechte anpassen: Vollzugriff fuer den Webmaster,
    // lesender Zugriff fuer die Gruppe und alle anderen, inkl. dem Webserver
    chmod($str_ziel, 0777);
    // Zurück.
   
    header("location: upload.php?true");

Guck mal drüber ob ich was nicht richtig übernommen habe!
 
Zuletzt bearbeitet:
Mhh also ich hab dein Code jetzt eingebunden, und eine Datei hochgeladen die zu groß sein sollte.


Dein Code gab dann folgende Meldung raus:


Sie dürfen nur Bilder in den Formaten ( Gif, jpg, und PNG ) Hochladen!

Zurück
______________________________________

Aber er hat die Datei hochgeladen.
 
Habe diese Zeile von dir jetzt übernommen : $int_max_filesize = 2000000;

Damit geht es jetzt.

Danke!
 
Zurück
Oben