• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Uploadskript mit Fehler...

Snacke

New member
... aber wo nur? Finde leider den Fehler nicht. Würde mich freuen wenn mir jemand helfen könnte.
PHP:
<?php
echo '<p>';
    $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/upload/';
    $filetyparr = array('.jpg', '.rar', '.gif', '.GIF');

    if (isset($_FILES['datei']))
    {
        $filename = $_FILES['datei']['tmp_name'];
        $filetyp = preg_match('~[a-zA-Z0-9].*?[^\.](\.\w{2,})~i', $filename, $s);
        $newfilename = md5(uniqid(rand(),false)).$s[1];
        $datei = $upload_dir.$newfilename;  

        $error = '';

        if( file_exists( $datei ) )
        {
            $error .= '<b>Dateiname bereits vorhanden!</b> Die Datei wurde unter '.htmlspecialchars( $filename ).' abgespeichert!<br />';
            $err = 1;
        }

        if( !in_array( substr( $s[1],1 ),$filetyparr ) )
        {
            $error .= 'Die Dateiendung entspricht nicht den Upload-Regeln!<br />';
            $err = 1;
        }

        if( ( empty( $err ) || $err != 1 ) && move_uploaded_file( $_FILES['datei']['tmp_name'], $datei ) )
        {
            echo '<p style="color:#CD7054">Sie haben soebend<br>http://hundeschule-redbone.de/upload/<strong>'.$newfilename.'</strong> 
                    <br>erfolgreich hochgeladen.<a href="/upload/'.$newfilename.'">Voransicht</a><br>Zum Einfügen ins Forum können  Sie auch folgende 
                    Cods benutzen:<br><hr>[img]  http://hundeschule-redbone.de/upload/'.$newfilename.'
                    [/img]<br><hr>[grafik]http://hundeschule-redbone.de/upload/'.$newfilename.'[/grafik]';
        }
        else
        {
            echo '<p style="color:#c00">Ihr Upload konnte wegen einem Temporären Fehler <strong>nicht</strong> hochgeladen werden!</p><br />'. $error;
            }
        }  
?>           
<br><hr>
 
Entschuldigung, hatte es vergessen. Also es wird mir gesagt das ein Temporärer Fehler aufgetreten ist, und dann tritt noch meine Fehlermeldung "Die Dateiendung entspricht nicht den Upload-Regeln!" .
Die Dateiendung stimmt jedoch, es was eine .gif Datei.
Mehr weiß ich leider auch nicht, finde aber nicht denn Fehler hierfür.
 
Versuch es doch mal damit:
PHP:
$file_ext = substr($_FILES['datei']['tmp_name'], strripos($_FILES['datei']['tmp_name'], '.'));

Ich würde evtl. auch die Abfrage nach dem richtigen Dateityp ändern:
PHP:
$filetyparr = array('.jpg', '.rar', '.gif');
[...]
if(
   !in_array(strtolower($file_ext) ,$filetyparr ) )
){
   [...]
So hast du dann auch auf jedenfall die großgeschriebenen Dateiendungen mit drin.
 
Zuletzt bearbeitet:
Mehr infos zu dem temporären Fehler!

Lass dir mal $s ausgeben (var_dump($s));
Was steht in substr($s[1], 1) und was sollte darin stehen?

Und dann denk mal einen Augenblick darüber nach.
 
Ich lade so hoch:

Code:
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt 
// $_FILES verwenden. In PHP kleiner als 4.0.3 verwenden Sie copy() 
// und is_uploaded_file() anstatt von move_uploaded_file()

$uploaddir = '/www/htdocs/w00a048f/user_images/';
$uploadfile = $uploaddir. "$row[0]".".jpg"; 

move_uploaded_file($_FILES['bild']['tmp_name'], $uploadfile)

P.S: Hab da eine Fragestellung ins JavaScript-Forum gepostet. Wäre nett wenn da jemand mal reinkucken könnte. :icon6:
 
NULL bedeuted das deine Variable nicht intialisiert - mit Werten belegt - wurde. Da in $s nichts drin steht, geht er natürlich in den then-Part der If-Abfrage.
 
Zurück
Oben