1

我对 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(),所以我的想法是会抛出“必须覆盖”错误,但情况似乎并非如此。

有任何想法吗?

4

0 回答 0