12 Stimmen

Unzulässiger Offset-Typ

Ich habe Probleme beim Hochladen einer Datei über php. Ich überprüfe den Dateityp zu Beginn des Prozesses und erhalte eine Fehlermeldung.

Ich erhalte folgende Fehlermeldung:

Warnung: Unzulässiger Offset-Typ in /balblabla/DBfunctions.inc.php auf Zeile 183

Dies ist die ausgedruckte $_FILES-Variable

Array ( [Bild] => Array ( [Name] => JPG.jpg [type] => image/jpeg [tmp_name] => /tmp/phpHlrNY8 [error] => 0 [size] => 192221 ) )

Hier ist das Segment des Codes, den ich verwende und der mir Probleme bereitet:

function checkFile($file, $type)
{
    if( in_array($_FILES[$file]['type'], $type) ){    //   <---  LINE 183
        return true;
    }//if
    return false;
} // end checkFile()

Dies ist die Codezeile, die die Funktion aufruft

if( checkFile( $_FILES['Bild'], array("image/jpeg") ) == true ){
//etc.
}// end if

Ich habe dieses Stück Code auf Dutzenden von Websites auf meinem eigenen Server verwendet, so dass ich vermute, dass dies eine andere Konfigurationsoption ist. Wie kann ich meinen Code so ändern, dass er auf diesem anderen Server funktioniert?

8voto

SoapBox Punkte 20141

Sie übergeben ein Array, nicht einen String/Integer-Index an Ihre checkFile Funktion.

Um dies zu beheben, nehmen Sie eine der folgenden Änderungen vor:

Ändern Sie checkfile so, dass es das übergebene Array verwendet, um die Prüfung durchzuführen:

if( in_array($file['type'], $type) )

ODER ändern Sie den Code, der diese Funktion aufruft, so dass er den Namen der Datei als Index übergibt und nicht das Datei-Array, also:

if( checkFile('Picture', array("image/jpeg") ) == true )

Beide Änderungen werden funktionieren.

1voto

user187291 Punkte 52315

Sur checkFile() ersetzen. $_FILES[$file] con $file . Sie indizieren $_FILES Array zweimal.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X