注意:未定义偏移量:0错误
问题描述:
我不断收到以下错误,我不知道如何修复它!帮帮我!注意:未定义偏移量:0错误
注意:未定义抵消:0在C:\的public_html \ ADMIN \包括上线\ funcs.inc.php 51
我得到的警告输出错误想法...
function getFileExtension($key) {
$extensions = array(IMAGETYPE_GIF => '.gif', IMAGETYPE_JPEG => '.jpg', IMAGETYPE_PNG => '.png');
$exifType = exif_imagetype($_FILES['artwork']['tmp_name'][$key]);
LINE 51 ---> $ext = $extensions[$exifType];
return $ext;
}
$ext = getFileExtension($key);
if (!isset($ext)) {
$warning = 'Error: Unsupported file type (supported images: gif, jpeg, png).';
}
答
您是否检查$ _FILES ['artwork'] ['tmp_name']是否为空? 我想你的文件没有上传。
你应该提供更多细节或一些调试信息
问候
答
似乎你还没有宣布用逗号数组键:
array(IMAGETYPE_GIF => '.gif', IMAGETYPE_JPEG => '.jpg', IMAGETYPE_PNG => '.png');
尝试使用此:
array('IMAGETYPE_GIF' => '.gif', 'IMAGETYPE_JPEG' => '.jpg', 'IMAGETYPE_PNG' => '.png');
并请让我知道,如果它的工作原理。
答
在任何情况下,exif_imagetype()都会返回一个您没有在数组中定义的值,您将收到一个偏移量错误。更好的解决方法是在设置返回值之前测试数组键的存在。
function getFileExtension($key) {
$extensions = array(IMAGETYPE_GIF => '.gif', IMAGETYPE_JPEG => '.jpg', IMAGETYPE_PNG => '.png');
$exifType = exif_imagetype($_FILES['artwork']['tmp_name'][$key]);
// Add this test.
// Modified because a value of false in $exifType will cause
// array_key_exists() to fail.
if($exifType && array_key_exists($exifType, $extensions)) {
$ext = $extensions[$exifType];
} else {
$ext = false;
}
return $ext;
}
$ext = getFileExtension($key);
if (!isset($ext)) {
$warning = 'Error: Unsupported file type (supported images: gif, jpeg, png).';
}
更新,以测试在$ exifType一个值,因此它不会导致array_key_exists()失败。
'$ key'是..? 51线在哪里?你上传了正确的文件吗?你用什么HTML来做到这一点?你可以用'print_r'来证明它吗?你到目前为止进行了哪些其他调试? –