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

TYPO3:如何从私有目录访问site_package中的mask.json文件?

解决方法

核心原因

你用ResourceFactory读取文件的方式不对——这个类是用来处理用户上传的公共媒体资源(比如fileadmin里的文件),而EXT:site_package/Configuration/Mask/mask.json是扩展的私有配置文件,不属于它的处理范围,所以触发了权限报错。

最优读取方式

直接解析扩展文件的绝对路径,用原生文件函数读取即可,这是处理扩展内部静态配置文件的标准方式:

use TYPO3\CMS\Core\Utility\GeneralUtility;

$filePath = GeneralUtility::getFileAbsFileName('EXT:site_package/Configuration/Mask/mask.json');
if (file_exists($filePath) && is_readable($filePath)) {
    $fileContent = file_get_contents($filePath);
    // 示例:转成数组处理
    $maskConfiguration = json_decode($fileContent, true);
}

其他说明

  • 不需要修改site_package的文件位置:Configuration/Mask/mask.json是Mask扩展规定的标准配置路径,改动反而会破坏兼容性。
  • 不建议用ResourceFactory处理这类文件:它的设计目标是管理可上传、可预览的媒体资源,不是扩展内部的静态代码文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:31:03