BFT*_*ick 12 php arrays file-upload
我无法通过php上传文件.我在流程开始时检查文件类型,但是出现错误.
这是我得到的错误:
警告:第183行/balblabla/DBfunctions.inc.php中的非法偏移类型
这是打印出的$ _FILES var
数组([Picture] =>数组([名称] => JPG.jpg [类型] =>图像/ 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()
Run Code Online (Sandbox Code Playgroud)
这是调用函数的代码行
if(checkFile($ _FILES ['Picture'],array("image/jpeg"))== true){
// do stuff
} //结束if
我在我自己的服务器上的几十个网站上使用了这段代码,所以我猜这是一些不同的配置选项.如何修改我的代码,以便它可以在这个不同的服务器上运行?
您正在向checkFile函数传递数组,而不是字符串/整数索引.
要解决此问题,请执行以下操作之一进行更改:
更改checkfile以便它使用传入的数组进行检查,因此:
if( in_array($file['type'], $type) )
Run Code Online (Sandbox Code Playgroud)
或者更改调用此函数的代码,以便它传递文件的名称以用作索引而不是文件数组,因此:
if( checkFile('Picture', array("image/jpeg") ) == true )
Run Code Online (Sandbox Code Playgroud)
要么改变都会有效.