File Form Field
The file form field type provides an input field for files.
- type (mandatory) must be file.
- name (mandatory) is the unique name of the field.
- label (mandatory) (translatable) is the field html label.
- description (optional) (translatable) is the field description.
- default (optional) (not translatable) is the default value, but doesn't mean much for a file.
- size (optional) is the width of the file box in characters.
- accept (optional) Tells the browser what file/MIME types your form will allow to be uploaded. See accept.
- class (optional) is a CSS class name for the HTML form field.
- labelclass (optional) adds a CSS class for form field's label; for Joomla 2.5.4+ disabled (optional) HTML equivalent attribute.
- onchange (optional) HTML equivalent attribute (javascript use).
- required Cannot be used with this field type. If the field is marked as required it will always fail validation regardless of whether a file has been uploaded or not. The suggested workaround is to add a filerequired attribute which can be tested in your own file handling code.
- validate (optional) Whether to Joomla validate the field according to rules.
- showon (optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+
- multiple (optional) Allows you to upload multiple files at once when set to multiple="true"
Implemented by: libraries/src/Form/Field/FileField.php
Note 1: When using the file input type you should always add the attribute enctype="multipart/form-data" to your form tag. Otherwise, the uploaded files will not be attached correctly.
Note 2: You can put a soft limit file size by adding a hidden field with name="MAX_FILE_SIZE" and value the maximum allowed bytes which is handled by php, but you must also handle it in your code with or without it.
Example XML parameter definition
<field
name="myfilevalue"
type="file"
label="Enter some text"
description="Choose an image from your computer with maximum 100KB"
size="10"
accept="image/*"
/>