我无法通过php上传文件。我在流程开始时检查文件类型,然后出错。
这是我得到的错误:
警告:非法偏移类型 /balblabla/DBfunctions.inc.php在线 183
这是打印出的$ _FILES var
数组([Picture] =>数组([name] => JPG.jpg [type] =>图像/ JPEG [tmp_name] => / tmp / phpHlrNY8 [错误] => 0 [size] => 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){
//做的东西
} //结束如果
我在我自己的服务器上的几十个网站上使用过这段代码,所以我猜这是一些不同的配置选项。如何修改我的代码以便它可以在这个不同的服务器上运行?
答案 0 :(得分:8)
您正在向checkFile
函数传递数组,而不是字符串/整数索引。
要解决此问题,请执行以下操作之一进行更改:
更改checkfile以便它使用传入的数组进行检查,因此:
if( in_array($file['type'], $type) )
或者更改调用此函数的代码,以便它传递文件的名称以用作索引而不是文件数组,因此:
if( checkFile('Picture', array("image/jpeg") ) == true )
任何改变都可行。
答案 1 :(得分:1)
在checkFile()
中使用$_FILES[$file]
替换$file
。您要将$_FILES
数组编入索引两次。