首页 > 解决方案 > TYPO3 v10 后端环境中的图像处理

问题描述

我们最近开始了我们的第一个 TYPO3 10 项目,目前正在努力使用将数据移动到 Algolia 的自定义导入脚本。基本上,一切正常,但 FAL 图像存在问题,特别是在需要处理它们时。

从日志中,我可以找到一个名为 的东西DeferredBackendImageProcessor,但文档没有提到这一点,或者我不是在寻找正确的东西。我不知道。

显然,后端环境中的图像不再只是处理。有一个叫做“processingUrl”的东西,必须调用一次才能处理图像。

我尝试使用 CURL 调用该 url,但它不起作用。问题是,当我在浏览器中打开那个“processingUrl”时,它没有效果——但是如果我在浏览器中打开那个链接,我登录到 TYPO3 后端,那么图像就会被处理。

我有点迷路了,因为我需要在导入脚本中处理图像,该脚本通过后端的调度程序运行(手动,而不是通过 cron)。

那就是出现问题的函数,可悲的是,卷曲部分在这里没有效果。

protected function processImage($image, $imageProcessingConfiguration)
{
    if ($image) {
        $scalingOptions = array (
            'width' => 170
        );
                
        $result = $this->contentObject->getImgResource('fileadmin/'.$image, $scalingOptions);
                
        if (isset($result[3]) && $result[3]) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $result[3]);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $output = curl_exec($ch);
            curl_close($ch);
                    
            return '/fileadmin'.$result['processedFile']->getIdentifier();
        }
    }
            
    return '';
}

$result[3]作为处理网址。网址示例:

domain.com/typo3/index.phproute=%2Fimage%2Fprocess&token=6cbf8275c13623a0d90f15165b9ea1672fe5ad74&id=141

所以我的问题是,如何处理来自该导入脚本的图像?

标签: phpimagetypo3typo3-10.x

解决方案


我不确定是否有更优雅的解决方案,但您可以在工作期间禁用延迟处理:

$processorConfiguration = $GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors']
unset ($GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors']['DeferredBackendImageProcessor'])

// ... LocalImageProcessor will be used

$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors'] = $processorConfiguration;

参考:


推荐阅读