php 如何限制通过TYPO3 Tca文件上传字段上传的文件的文件类型?

yk9xbfzb  于 2023-02-03  发布在  PHP
关注(0)|答案(2)|浏览(116)

我在扩展名的TCA中有一个文件上传字段。我想通过该字段限制可上传文件的类型。仅限“pdf”或任何其他文档文件类型(例如:doc、xls、rar、zip等)。必须禁止所有其他文件类型(例如:图像、视频等)。我该怎么做?

brgchamk

brgchamk1#

您需要将overrideChildTcafilter添加到TCA配置中以覆盖允许的文件扩展名,如www.example.com上所述https://docs.typo3.org/m/typo3/reference-tca/9.5/en-us/ColumnsConfig/Type/Inline.html#file-abstraction-layer

yqhsw0fo

yqhsw0fo2#

在较新的TYPO3版本中,一些字段类型已经被替换,因此现在它取决于您的TYPO3版本和要使用的功能。
有趣的是TYPO3在不同的地方改变了如何包含/排除东西,在较新的版本中,你通常不定义要排除什么,你定义要包含什么。

类型="文件"(自TYPO3版本12起)

从TYPO3 v12开始,你有了"file"类型。在这里,你可以使用"allowed"来定义允许哪些文件扩展名。在下面的代码片段中,只允许类型"png"。
Flexform示例:

<settings.file>
  <TCEforms>
    <label>Some title or language label</label>
      <config>
        <type>file</type>
        <maxitems>1</maxitems>
        <allowed>png</allowed>
      </config>
    </TCEforms>
</settings.file>
  • 文件:TCA类型file

类型="链接"(自TYPO3版本12起)

同样,从TYPO3 v12开始,你有了type ='link ',这取代了以前的type ='input' renderType ='inputLink '(但是属性也改变了--迁移是存在的,但是你应该在将来使用正确的属性!)。
这给了你比"文件"更多的选项,你也可以用它来选择页面,输入一个URL等。你可以使用哪些文件是用allowedFileExtensions定义的。
Flexform示例:

<settings.link>
  <TCEforms>
    <label>Some title or language label</label>
      <config>
        <type>link</type>
        <!-- 
             This defines, what you can select in the link browser.
             !!! Is not a csv string (as before in inputLink), but an array!!! 
        -->
        <allowedTypes>
          <numIndex index="0">file</numIndex>
          <numIndex index="1">url</numIndex>
        </allowedTypes>
        <appearance>
          <enableBrowser>true</enableBrowser>
          <browserTitle>Select file or URL</browserTitle>

          <!-- 
               is not a csv string (as in inputLink), but an array!!! 
          -->
          <allowedFileExtensions>
            <numIndex index="0">png</numIndex>
          </allowedFileExtensions>

          <!-- 
               !!! important, <allowedOptions must contain the numIndex, 
               just using
               <allowedOption></allowedOption> is not sufficient
          -->
          <allowedOptions>
            <numIndex index="0"></numIndex>
          </allowedOptions>
        </appearance>
      </config>
    </TCEforms>
</settings.file>
  • 文件:TCA类型link

对于以前的TYPO3版本,请参见type ="输入",renderType ="输入链接."

相关问题