Yasadışı ofset tip

2 Cevap php

Ben php ile dosya yüklerken sorun yaşıyorum. Ben sürecin başında dosya türünü kontrol ve ben bir hata alıyorum.

Bu ben alıyorum hatadır:

Warning: Illegal offset type in /balblabla/DBfunctions.inc.php on line 183

Bu yazdırılır $ _FILES var olduğunu

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

İşte bu bana sorunları veriyor kullanıyorum kod segment:

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

Bu işlevi çağıran kod satırı

if( checkFile( $_FILES['Picture'], array("image/jpeg") ) == true ){
//do stuff
}// end if

Ben bu yüzden bu bazı farklı yapılandırma seçeneği olduğunu tahmin ediyorum kendi sunucusunda web sitelerinde onlarca kod bu parça kullandık. Bu farklı bir sunucu üzerinde çalışır, böylece nasıl benim kodunu değiştirebilirsiniz?

2 Cevap

Sen checkFile işlevin bir dizi değil, bir dize / tamsayı dizin geçiyoruz.

Bunu düzeltmek için, değişiklikleri için aşağıdakilerden birini yapın:

Bu şekilde,, kontrolünü yapmak için geçirilen bir dizi kullanır, böylece checkfile değiştirin:

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

VEYA bu şekilde, oldukça dosya dizisi daha bir indeks olarak kullanmak için dosya adını geçirir, böylece bu işlevi çağıran kodu değiştirin:

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

Ya değişim çalışacaktır.

In checkFile() $_FILES[$file] $file ile değiştirin. Sen iki kere $_FILES dizi indeksleme ediyoruz.