У меня возникли проблемы с загрузкой файла через 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
.