Bug #93695

Cannot override file upload mime-types completely

Added by Oliver Hader 2 months ago. Updated about 2 months ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
Form Framework
Target version:
-
Start date:
2021-03-10
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
10
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Form element definition for FileUpload in typo3/sysext/form/Configuration/Yaml/FormElements/FileUpload.yaml contains

allowedMimeTypes:
  - application/msword
  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
  - application/vnd.oasis.opendocument.text
  - application/pdf

My specific form definition at fileadmin/form_definitions/something.form.yaml overrides settings since I just expect plain-text or CSV uploads:

-
  properties:
    saveToFileMount: '1:/form_uploads/documents/'
    allowedMimeTypes:
      - text/plain
      - text/csv
    elementDescription: ''
  type: FileUpload
  identifier: fileupload-1
  label: Document

However, allowedMimeTypes items are not completely overridden, but merged instead - some mime-types of the initial form element definition are kept - for this example I get:

  - text/plain
  - text/csv
  - application/vnd.oasis.opendocument.text
  - application/pdf

This is caused in TYPO3\CMS\Form\Domain\Model\FormElements\AbstractFormElement::setProperty() which implicitly merges those values. From my point-of-view it's most probably not required to apply initial settings from typo3/sysext/form/Configuration/Yaml/FormElements/FileUpload.yaml at all - however, I did not check/verify that.

#1

Updated by Martin Kutschker about 2 months ago

Furthermore it's not only mime types that "accept", well, accepts: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-accept

For better user experience we usually add the common file extensions to the attribute.

But yes, the implementation is broken. And also in the form editor it is not clear for an editor what mime types you get, when you select one or none for an upload field.

I think we could have a file type collection as intermediary. The file type lists all extensions and mime types associated eg with a PDF document. MIME types mean nothing to a user. File extensions maybe only for older Windows users.

Also available in: Atom PDF