php - 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
所以我的问题是,如何处理来自该导入脚本的图像?
解决方案
我不确定是否有更优雅的解决方案,但您可以在工作期间禁用延迟处理:
$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;
参考:
推荐阅读
- excel - 如何解决 VBA 粘贴公式错误 1004 和下标超出范围
- arrays - 如何从 Firestore 中的数组中提取数据?
- excel - 对于每个单元格(匹配行)然后....多个范围
- javascript - 如何通过可以由单个非相交线追踪的网格有效地生成“密集”路径?
- apache-spark - Elasticsearch with Spark,基于数据框列的动态索引创建
- neural-network - 关于 LSTM 编码器解码器模型不起作用
- node.js - 仅从前端而不是从 MongoDB 中删除项目
- javascript - 删除数组内对象中的重复键并汇总每个状态Javascript的总数
- java - 问题调试生产者消费者问题
- c++ - 使用 C++ 解析复杂的文本文件