Cannot override file upload mime-types completely
Form element definition for
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
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.
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.