You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从TYPO3 v6.1.7导入t3d到v12.4.10时触发TypeError错误

解决TYPO3 6.1.7导出t3d导入12.4.10时的TypeError问题

问题概述

从TYPO3 v6.1.7导出站点树生成t3d文件,导入到v12.4.10实例时触发以下TypeError:

TypeError
TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix(): Argument #1 ($path) must be of type string, null given, called in /var/www/typo/vendor/typo3/cms-impexp/Classes/ImportExport.php on line 819

核心原因是旧版本导出的t3d文件中存在空路径字段,TYPO3 v12的导入逻辑未处理null值,直接传入了要求字符串类型的stripPathSitePrefix方法。

解决方案

1. 修复t3d文件中的空路径字段

用文本编辑器打开导出的t3d文件,定位并处理空路径相关条目:

  • 搜索file=""、path=""或其他无值的路径属性
  • 关联媒体文件的空字段:补全对应新实例fileadmin下的正确路径
  • 无效的空条目:直接删除该字段或条目

2. 拆分导出/导入范围

避免一次性导出整个站点树,拆分操作降低排查难度:

  • 先导出仅页面结构(不含内容元素和媒体关联),导入验证成功后,再单独导出/导入内容元素、媒体文件关联部分

3. 中间版本过渡导入(推荐)

由于跨版本跨度极大(v6.1到v12.4),直接导入易触发格式兼容问题,建议通过中间LTS版本过渡:

  1. 将旧v6.1.7实例升级到v7.6 LTS(需匹配对应PHP版本)
  2. 从v7.6导出t3d,导入到v10.4 LTS实例
  3. 再从v10.4导出后,导入到目标v12.4.10实例
    中间版本的导出工具会自动处理数据格式,减少跨版本兼容问题

4. 临时修改导入逻辑(紧急场景)

注意:修改核心文件会影响后续版本更新,仅临时使用
编辑新实例的/var/www/typo/vendor/typo3/cms-impexp/Classes/ImportExport.php第819行,在调用stripPathSitePrefix前增加null判断:

// 替换原调用代码
$processedPath = isset($pathVariable) && $pathVariable !== null ? \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($pathVariable) : '';

修复后完成导入,后续更新TYPO3时需恢复该文件。

内容的提问来源于stack exchange,提问作者EmilEmilchen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 15:01:18