Я озадачен проблемой XenForo 1.5.7 / php7. Я прочитал это tempnam () был изменен с php7 (основанный на разрешениях временного каталога), но я chmod’d каталог, поскольку эта ссылка заявляет, все еще безрезультатно.
Я распечатал $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()
Я думал, что будет выдано сообщение «Должно быть отменено», но это не так.
Есть идеи?
Задача ещё не решена.
Других решений пока нет …