Недопустимый тип смещения

У меня возникли проблемы с загрузкой файла через php. Я проверяю тип файла в начале процесса и получаю сообщение об ошибке.

Это ошибка, которую я получаю:

Предупреждение. Недопустимый тип смещения в /balblabla/DBfunctions.inc.php в строке 183

Это распечатанный файл $ _FILES var

Array ([Picture] => Array ([name] => JPG.jpg [type] => image / jpeg [tmp_name] => / tmp / phpHlrNY8 [ошибка] => 0 [размер] => 192221))

Вот сегмент кода, который я использую, который дает мне проблемы:

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

Это строка кода, вызывающая функцию

if (checkFile ($ _FILES ['Picture'], array ("image / jpeg")) == true) {
// делать что-то
} // завершение if

Я использовал этот фрагмент кода на десятках сайтов на моем собственном сервере, поэтому я предполагаю, что это другой вариант конфигурации. Как я могу изменить свой код, чтобы он работал на этом другом сервере?

    Вы передаете массив, а не индекс string / integer в вашу функцию checkFile .

    Чтобы исправить это, внесите одно из следующих изменений:

    Измените контрольный файл, чтобы он использовал полученный массив для проверки, таким образом:

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

    ИЛИ измените код, вызывающий эту функцию, чтобы передать имя файла для использования в качестве индекса, а не массива файлов, таким образом:

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

    Все изменения будут работать.

    В checkFile() замените $_FILES[$file] на $file . Вы дважды индексируете массив $_FILES .