Я испытываю затруднения при загрузке файла через 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")) == верный) {
//действительно наполнить
}//заканчиваются если
Я использовал эту часть кода десятков веб-сайтов на моем собственном сервере, таким образом, я предполагаю, что это - некоторый другой параметр конфигурации. Как я могу изменить свой код так, чтобы он работал над этим другим сервером?
Вы передаете в функцию checkFile
массив, а не строковый / целочисленный индекс.
Чтобы исправить это, внесите в изменения одно из следующих действий:
Измените контрольный файл так, чтобы он использовал переданный массив для проверки, таким образом:
if( in_array($file['type'], $type) )
ИЛИ измените код, вызывающий эту функцию, чтобы он проходил имя файла для использования в качестве индекса, а не массива файлов, таким образом:
if( checkFile('Picture', array("image/jpeg") ) == true )
Любое изменение будет работать.
В checkFile ()
замените $ _ FILES [$ file]
на $ file
. Вы дважды индексируете массив $ _ FILES
.