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

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

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

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

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

Массив ([Изображение] => Массив ([имя] => JPG.jpg [тип] => 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()

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

если (checkFile ($ _FILES ['Изображение'], массив ("image/jpeg")) == верный) {
//действительно наполнить
}//заканчиваются если

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

12
задан BFTrick 2 February 2010 в 23:07
поделиться

2 ответа

Вы передаете в функцию checkFile массив, а не строковый / целочисленный индекс.

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

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

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

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

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

Любое изменение будет работать.

8
ответ дан 2 December 2019 в 22:37
поделиться

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

1
ответ дан 2 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: