我对XenForo 1.5.7 / php7问题感到难过。我已经阅读了tempnam() was changed as of php7(基于临时目录权限),但是我已经按照该链接的状态对目录进行了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()
中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()
调用,我的想法是会抛出“必须覆盖”错误,但似乎并非如此。
有什么想法吗?