【问题标题】:October CMS disallowed file types十月 CMS 不允许的文件类型
【发布时间】:2017-11-21 15:03:24
【问题描述】:

我正在尝试将 .pptx 文件上传到 10 月 CMS 中的媒体库,但由于文件类型不允许,我收到错误消息。我尝试使用 Stackoverflow 的以下建议:

'fileDefinitions' => [ 'assetExtensions' => array_merge(FileDefinitions::get('assetExtensions'), ['docx']), ],

但我收到有关 FileDefinitions 类不存在的错误消息。我还尝试了在 /config/cms.php 中添加到 fileTypes 数组的另一个建议,但这也不起作用,因为这种包含文件的方式似乎已经消失了。

十月的 CMS git repo 有一个拉取请求,它向源代码添加了一个文件类型,但我觉得这不是一个好主意,因为不同的用户有不同的需求,并且每次有人想要一个新的系统时都必须更新添加了文件类型!无论如何,有没有人知道一种在允许文件类型数组中简单地添加新文件类型的好方法?

似乎它应该是一个简单的配置设置,但对于我来说,我找不到任何工作参考。

【问题讨论】:

    标签: php octobercms octobercms-backend


    【解决方案1】:

    我猜你在那里添加了错误的扩展名 pptx 而不是 ppxt @David Lundquist

    <?php
    
    return [
    
        'fileDefinitions' => [
            'defaultExtensions' => [
                'pptx'
             ]
        ],
    
        // other config
        ....
    ];
    

    只需将此行添加到 config/cms.php 配置中,它应该可以工作。

    但现在请确保它现在只允许文件 .pptx 如果您想允许更多扩展名,您需要在此处手动添加它们。

    'jpg'、'jpeg'、'bmp'、'png'、'webp'、'gif'、'svg'、'js'、'map'、'ico'、'css'、'less' ,'scss','ics','odt','doc','docx','pdf','swf','txt','xml','ods','xls','xlsx',' eot','woff','woff2','ttf','flv','wmv','mp3','ogg','wav','avi','mov','mp4','mpeg' , 'webm', 'mkv', 'rar', 'zip'

    这是默认列表,因此只需复制此列表并在此处添加您自己的额外扩展名..

    在你的情况下,它的 pptx .. 它会起作用。

    我已经检查了代码库,没有其他简单的方法可以扩展它。 { 可能需要额外的插件和钩子等..}

    不要尝试使用 array_merge 解决方案,因为 FileDefinitions 代码将递归调用以再次获取 cms 配置,它会执行 array_merge ... (超出主题但它不起作用,所以不要尝试)

    最好使用这个,这不会影响更新。

    每次有人想要添加新文件类型时更新!

    不要担心他们提供配置文件只是为了这个目的:)

    试试看,如果不行请评论。

    【讨论】:

    • 效果很好,我已经接受了正确的答案,谢谢。我同意 cms.php 是这样做的正确方法。感谢 Hardik Satasiya 和 David Lundquist
    • This works 但是我怎样才能从他们提供的默认扩展中添加扩展(比如在数组中添加项目(array_push))。这可能吗?
    • 我不确定它在配置文件中,所以没有直接的编辑方法,我们需要手动编辑它,或者更确切地说是制作我们自己的钩子来扩展它,但它会更多工作
    【解决方案2】:

    如果您想将特定的文件扩展名上传到媒体库,您需要转到 cms 配置

    cms.php 并添加

            'fileDefinitions' => [
                    'defaultExtensions' => [
                        'ppxt',...10billion more extensions in a list here]
                     ]
    

    【讨论】:

      【解决方案3】:

      在 Cyber​​Panel 上我通过以下步骤修复了它:

      1. 添加确保我使用的 PHP 版本与我的网站相同,即 7.3
      2. 打开 file_uploads “ON”(最重要)(这是一切开始正常工作的地方)
      3. 添加upload_tmp_dir 目录可能有效,但对我来说只有打开file_uploads 有效
      4. 将 /tmp 目录添加到 OpenLiteSpeed > 服务器配置 > 文件上传

      【讨论】:

        猜你喜欢
        • 2016-09-11
        • 1970-01-01
        • 2018-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多