我对 XenForo 1.5.7 / php7 问题感到困惑。我已经读过tempnam() 从 php7 开始更改(基于 temp dir 权限),但是我已经按照链接状态对目录进行了 chmod,但仍然无济于事。
我打印出$newTempFile
哪个返回/var/www/forum/internal_data/temp/xfJ9FLyG
(看起来正确)。下一行,$image
变量,没有设置,然后在if()
下面抛出错误。
$newTempFile = tempnam(XenForo_Helper_File::getTempDir(), 'xf');
$image = XenForo_Image_Abstract::createFromFile($fileName, $imageType);
if (!$image)
{
throw new XenForo_Exception(new XenForo_Phrase('image_could_be_processed_try_another_contact_owner'), true);
}
这是createFromFile()
in的代码Image\Abstract.php
:
/**
* Creates an image from an existing file.
*
* @param string $fileName
* @param integer $inputType IMAGETYPE_XYZ constant representing image type
*
* @return XenForo_Image_Abstract|false
*/
public static function createFromFileDirect($fileName, $inputType)
{
throw new XenForo_Exception('Must be overridden');
}
...
public static function createFromFile($fileName, $inputType)
{
$class = self::_getDefaultClassName();
return call_user_func(array($class, 'createFromFileDirect'), $fileName, $inputType);
}
因为它看起来像是createFromFileDirect()
从 调用的createFromFile()
,所以我的想法是会抛出“必须覆盖”错误,但情况似乎并非如此。
有任何想法吗?