TYPO3 11版本如何禁止在filelist模块上传PNG文件?
解决TYPO3 11中Filelist模块仍允许上传PNG文件的问题
你已修改[GFX][imagefile_ext]和SYS->mediafile_ext但Filelist仍允许PNG上传,可按以下步骤排查修复:
检查后台全局上传配置
确认$GLOBALS['TYPO3_CONF_VARS']['BE']['uploadFileTypes']中未包含png。该配置控制后台所有模块的上传允许扩展名,若此处保留png,即使mediafile_ext移除也会允许上传。排查用户组TSconfig
查看对应后端用户组的TSconfig,检查是否存在mod.file_upload.extensions配置项。该配置会覆盖全局的上传扩展名限制,若此处包含png,需移除。强制清理系统缓存
修改配置后,务必清理TYPO3的所有缓存(包括配置缓存、页面缓存)。TYPO3会缓存配置信息,未清理的话新配置不会生效。验证MIME类型映射
检查$GLOBALS['TYPO3_CONF_VARS']['FILE']['fileExtensionToMimeType'],确保png没有对应的MIME类型配置。若存在,可删除该行,或添加如下配置拒绝PNG的MIME类型:$GLOBALS['TYPO3_CONF_VARS']['FILE']['deniedMimeTypes'][] = 'image/png';上传验证钩子兜底
如果以上方法都无效,可通过注册上传验证钩子实现强制拦截。在扩展的ext_localconf.php中添加:$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_extfilefunc.php']['checkUpload']['your_extension_key'] = \Vendor\YourExtension\Hook\FileUploadCheck::class . '->checkUpload';然后创建对应的钩子类,在
checkUpload方法中判断文件扩展名是否为png,若是则抛出错误:namespace Vendor\YourExtension\Hook; class FileUploadCheck { public function checkUpload(array &$params, \TYPO3\CMS\Core\Utility\ExtensionManagementUtility $parentObject) { $fileExtension = strtolower(pathinfo($params['filename'], PATHINFO_EXTENSION)); if ($fileExtension === 'png') { $params['error'] = 'PNG文件禁止上传'; } } }
内容的提问来源于stack exchange,提问作者Chetan Shah
相关产品推荐
相关产品推荐

