File input

Displays a file input.

Fileinput by drag and drop, single file

Display as a file input area (dropzone, single file).

Allowed files: Audios Videos Images
<!-- form.blade.php -->
<form class="c-form u-padding__y--4 js-form-validation" id="id_69af3cff55c30" data-uid="69af3cff55c3a" method="POST" action="#">

    
    
    <!-- fileinput.blade.php -->
<div class="c-field c-fileinput is-empty" data-js-file="dropzone" data-js-file-max="1" data-js-file-min="0" data-js-file-is-multi="0" id="id_69af3cff55518" data-uid="69af3cff55539">
        <template class="c-element" data-js-file="notice-template" data-js-upload-error-message="Following files could not be uploaded" data-js-upload-error-message-min-files="Please upload more files" data-uid="69af3cff557fe">
        <!-- notice.blade.php -->
<div class="c-notice c-notice--danger" id="id_69af3cff555c9" data-uid="69af3cff555db" aria-labelledby="notice__text__id_69af3cff555c9">
    
    
            <span class="c-notice__icon">
                <!-- icon.blade.php -->
    <span class="c-icon c-icon--error c-icon--material c-icon--material-error material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-lg" data-material-symbol="error" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" aria-hidden="false" data-uid="69af3cff55765">
                    </span>
        </span>
        
    
    
    
            <span id="notice__text__id_69af3cff555c9" data-js-notice-message="true" class="c-notice__message">
                            
                        <!-- Message -->
        </span>
    
    
    </div>
    </template>
                <label class="c-element c-field__label c-fileinput__label" for="input_id_69af3cff55518" id="label_id_69af3cff55518" data-js-file="label" data-uid="69af3cff55842">
        Choose files
    </label>
    
    <!-- Actual input -->
    <input type="file"
        class="c-fileinput__input"
        name="files"
        id="input_id_69af3cff55518"
        accept="audio/*,video/*,image/*"
        
        
        data-js-file="input"
        aria-hidden="true"
        tabindex="-1"
    >

    <div class="c-fileinput__inner c-fileinput__inner--area">
        <div class="c-fileinput__area" data-js-file="area">

          <!-- typography.blade.php   original: p -->
<p class="c-typography c-field__description c-fileinput__description u-margin__top--1 u-margin__bottom--3 c-typography__variant--meta" data-uid="69af3cff558d7">
    Display as a file input area (dropzone, single file).
</p>  
  <!-- This button is used to trigger the file input -->
      <button class="c-button c-fileinput__button js-file-input-button c-button__basic c-button__basic--default c-button--md" data-js-file="button" aria-live="polite" type="button" aria-label="Select file" data-uid="69af3cff5594e">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
                    <span class="c-button__label-icon ">
                    <!-- icon.blade.php -->
    <span class="c-icon c-icon--file-upload c-icon--material c-icon--material-file_upload material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-md" aria-hidden="false" data-material-symbol="file_upload" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff55999">
                    </span>
            </span>
        
                    <span class="c-button__label-text ">
                Select file
            </span>
        
    </span> </button>
  <!-- This button is used to illustrate drag and drop, it has no function -->
      <button class="c-button js-file-input-drop c-button__basic c-button__basic--default c-button--md" data-js-file="drop" aria-hidden="true" type="button" aria-label="Drop files here" data-uid="69af3cff559e6">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
                    <span class="c-button__label-icon ">
                    <!-- icon.blade.php -->
    <span class="c-icon c-icon--place-item c-icon--material c-icon--material-place_item material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-md" aria-hidden="false" data-material-symbol="place_item" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff55a23">
                    </span>
            </span>
        
                    <span class="c-button__label-text ">
                Drop files here
            </span>
        
    </span> </button>
  <div class="c-fileinput__file-list" data-js-file="list">
            <template data-js-file="listitem-template">
    <div class="c-fileinput__item" data-js-file="listitem" data-js-file-id="">
        <div class="c-fileinput__item-container">
            <div class="c-fileinput__item-icon-wrapper">
                    <!-- icon.blade.php -->
    <span class="c-icon c-fileinput__item-icon c-icon--attach-file c-icon--material c-icon--material-attach_file material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-sm" aria-hidden="false" data-js-file="icon" data-material-symbol="attach_file" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff55aa2">
                    </span>
            </div>

            <div class="c-fileinput__item-text">
                <span class="c-fileinput__item-name" data-js-file="filename"></span>
                <span class="c-fileinput__item-size" data-js-file="filesize"></span>
            </div>

            <div class="c-fileinput__item-remove" data-tooltip="Remove file">
                    <button class="c-button c-fileinput__item-remove-button c-button__basic c-button__basic--default c-button--sm c-button--icon-only" aria-label="Remove file" data-js-file="remove" type="button" data-uid="69af3cff55aea">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
                    <span class="c-button__label-icon ">
                    <!-- icon.blade.php -->
    <span class="c-icon c-icon--delete c-icon--material c-icon--material-delete material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-sm" aria-hidden="false" data-material-symbol="delete" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff55b26">
                    </span>
            </span>
        
        
    </span> </button>            </div>
        </div>
    </div>
</template>      </div>
  
   <div class="c-fileinput__accepted-files-wrapper" data-js-file="counter-wrapper">
            <div class="c-element" data-uid="69af3cff55b98">
        <div class="c-element c-fileinput__accepted-files" data-uid="69af3cff55b69">
        Allowed files: Audios Videos Images
    </div>
    </div>
        
            <div class="c-element c-fileinput__filecounter" data-js-file="counter" data-counter-current="0" data-counter-max="1" aria-hidden="true" aria-live="polite" data-uid="69af3cff55bc6">
        /
    </div>
        
   </div>
</div>    </div>
</div>
</form>
@form(['classList' => ['u-padding__y--4']])
    @fileinput([
        'multiple' => false,
        'label' => 'Choose files',
        'description' => 'Display as a file input area (dropzone, single file).',
    ])
    @endfileinput
@endform

Fileinput by drag and drop, multiple files

Display as a file input area (dropzone, multi file).

Allowed files: Audios Videos Images
<!-- form.blade.php -->
<form class="c-form u-padding__y--4 js-form-validation" id="id_69af3cff560b4" data-uid="69af3cff560bd" method="POST" action="#">

    
    
    <!-- fileinput.blade.php -->
<div class="c-field c-fileinput is-empty" data-js-file="dropzone" data-js-file-max="10" data-js-file-min="0" data-js-file-is-multi="1" id="id_69af3cff55cb6" data-uid="69af3cff55cc7">
        <template class="c-element" data-js-file="notice-template" data-js-upload-error-message="Following files could not be uploaded" data-js-upload-error-message-min-files="Please upload more files" data-uid="69af3cff55d81">
        <!-- notice.blade.php -->
<div class="c-notice c-notice--danger" id="id_69af3cff55cfd" data-uid="69af3cff55d08" aria-labelledby="notice__text__id_69af3cff55cfd">
    
    
            <span class="c-notice__icon">
                <!-- icon.blade.php -->
    <span class="c-icon c-icon--error c-icon--material c-icon--material-error material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-lg" data-material-symbol="error" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" aria-hidden="false" data-uid="69af3cff55d41">
                    </span>
        </span>
        
    
    
    
            <span id="notice__text__id_69af3cff55cfd" data-js-notice-message="true" class="c-notice__message">
                            
                        <!-- Message -->
        </span>
    
    
    </div>
    </template>
                <label class="c-element c-field__label c-fileinput__label" for="input_id_69af3cff55cb6" id="label_id_69af3cff55cb6" data-js-file="label" data-uid="69af3cff55db4">
        Choose files
    </label>
    
    <!-- Actual input -->
    <input type="file"
        class="c-fileinput__input"
        name="files[]"
        id="input_id_69af3cff55cb6"
        accept="audio/*,video/*,image/*"
        multiple
        
        data-js-file="input"
        aria-hidden="true"
        tabindex="-1"
    >

    <div class="c-fileinput__inner c-fileinput__inner--area">
        <div class="c-fileinput__area" data-js-file="area">

          <!-- typography.blade.php   original: p -->
<p class="c-typography c-field__description c-fileinput__description u-margin__top--1 u-margin__bottom--3 c-typography__variant--meta" data-uid="69af3cff55e03">
    Display as a file input area (dropzone, multi file).
</p>  
  <!-- This button is used to trigger the file input -->
      <button class="c-button c-fileinput__button js-file-input-button c-button__basic c-button__basic--default c-button--md" data-js-file="button" aria-live="polite" type="button" aria-label="Select file" data-uid="69af3cff55e41">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
                    <span class="c-button__label-icon ">
                    <!-- icon.blade.php -->
    <span class="c-icon c-icon--file-upload c-icon--material c-icon--material-file_upload material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-md" aria-hidden="false" data-material-symbol="file_upload" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff55e8d">
                    </span>
            </span>
        
                    <span class="c-button__label-text ">
                Select file
            </span>
        
    </span> </button>
  <!-- This button is used to illustrate drag and drop, it has no function -->
      <button class="c-button js-file-input-drop c-button__basic c-button__basic--default c-button--md" data-js-file="drop" aria-hidden="true" type="button" aria-label="Drop files here" data-uid="69af3cff55ed5">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
                    <span class="c-button__label-icon ">
                    <!-- icon.blade.php -->
    <span class="c-icon c-icon--place-item c-icon--material c-icon--material-place_item material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-md" aria-hidden="false" data-material-symbol="place_item" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff55f10">
                    </span>
            </span>
        
                    <span class="c-button__label-text ">
                Drop files here
            </span>
        
    </span> </button>
  <div class="c-fileinput__file-list" data-js-file="list">
            <template data-js-file="listitem-template">
    <div class="c-fileinput__item" data-js-file="listitem" data-js-file-id="">
        <div class="c-fileinput__item-container">
            <div class="c-fileinput__item-icon-wrapper">
                    <!-- icon.blade.php -->
    <span class="c-icon c-fileinput__item-icon c-icon--attach-file c-icon--material c-icon--material-attach_file material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-sm" aria-hidden="false" data-js-file="icon" data-material-symbol="attach_file" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff55f6d">
                    </span>
            </div>

            <div class="c-fileinput__item-text">
                <span class="c-fileinput__item-name" data-js-file="filename"></span>
                <span class="c-fileinput__item-size" data-js-file="filesize"></span>
            </div>

            <div class="c-fileinput__item-remove" data-tooltip="Remove file">
                    <button class="c-button c-fileinput__item-remove-button c-button__basic c-button__basic--default c-button--sm c-button--icon-only" aria-label="Remove file" data-js-file="remove" type="button" data-uid="69af3cff55fb0">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
                    <span class="c-button__label-icon ">
                    <!-- icon.blade.php -->
    <span class="c-icon c-icon--delete c-icon--material c-icon--material-delete material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-sm" aria-hidden="false" data-material-symbol="delete" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff55fe9">
                    </span>
            </span>
        
        
    </span> </button>            </div>
        </div>
    </div>
</template>      </div>
  
   <div class="c-fileinput__accepted-files-wrapper" data-js-file="counter-wrapper">
            <div class="c-element" data-uid="69af3cff56055">
        <div class="c-element c-fileinput__accepted-files" data-uid="69af3cff56029">
        Allowed files: Audios Videos Images
    </div>
    </div>
        
            <div class="c-element c-fileinput__filecounter" data-js-file="counter" data-counter-current="0" data-counter-max="10" aria-hidden="true" aria-live="polite" data-uid="69af3cff56081">
        /
    </div>
        
   </div>
</div>    </div>
</div>
</form>
@form(['classList' => ['u-padding__y--4']])
    @fileinput([
        'multiple' => true,
        'label' => 'Choose files',
        'description' => 'Display as a file input area (dropzone, multi file).',
    ])
    @endfileinput
@endform

Fileinput with minimum number of files

Display as a file input area (dropzone, multi file).

Allowed files: Audios Videos Images

<!-- form.blade.php -->
<form class="c-form u-padding__y--4 js-form-validation" id="id_69af3cff5657e" data-uid="69af3cff56586" method="POST" action="#">

    
    
    <!-- fileinput.blade.php -->
<div class="c-field c-fileinput c-fileinput--preview is-empty" data-js-file-preview="1" data-js-file="dropzone" data-js-file-max="10" data-js-file-min="2" data-js-file-is-multi="1" id="id_69af3cff5612d" data-uid="69af3cff5613f">
        <template class="c-element" data-js-file="notice-template" data-js-upload-error-message="Following files could not be uploaded" data-js-upload-error-message-min-files="Please upload more files" data-uid="69af3cff561f1">
        <!-- notice.blade.php -->
<div class="c-notice c-notice--danger" id="id_69af3cff56172" data-uid="69af3cff5617d" aria-labelledby="notice__text__id_69af3cff56172">
    
    
            <span class="c-notice__icon">
                <!-- icon.blade.php -->
    <span class="c-icon c-icon--error c-icon--material c-icon--material-error material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-lg" data-material-symbol="error" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" aria-hidden="false" data-uid="69af3cff561b3">
                    </span>
        </span>
        
    
    
    
            <span id="notice__text__id_69af3cff56172" data-js-notice-message="true" class="c-notice__message">
                            
                        <!-- Message -->
        </span>
    
    
    </div>
    </template>
                <label class="c-element c-field__label c-fileinput__label" for="input_id_69af3cff5612d" id="label_id_69af3cff5612d" data-js-file="label" data-uid="69af3cff56223">
        Choose files
    </label>
    
    <!-- Actual input -->
    <input type="file"
        class="c-fileinput__input"
        name="files[]"
        id="input_id_69af3cff5612d"
        accept="audio/*,video/*,image/*"
        multiple
        
        data-js-file="input"
        aria-hidden="true"
        tabindex="-1"
    >

    <div class="c-fileinput__inner c-fileinput__inner--area">
        <div class="c-fileinput__area" data-js-file="area">

          <!-- typography.blade.php   original: p -->
<p class="c-typography c-field__description c-fileinput__description u-margin__top--1 u-margin__bottom--3 c-typography__variant--meta" data-uid="69af3cff5627b">
    Display as a file input area (dropzone, multi file).
</p>  
  <!-- This button is used to trigger the file input -->
      <button class="c-button c-fileinput__button js-file-input-button c-button__basic c-button__basic--default c-button--md" data-js-file="button" aria-live="polite" type="button" aria-label="Select file" data-uid="69af3cff562b7">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
                    <span class="c-button__label-icon ">
                    <!-- icon.blade.php -->
    <span class="c-icon c-icon--file-upload c-icon--material c-icon--material-file_upload material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-md" aria-hidden="false" data-material-symbol="file_upload" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff562fa">
                    </span>
            </span>
        
                    <span class="c-button__label-text ">
                Select file
            </span>
        
    </span> </button>
  <!-- This button is used to illustrate drag and drop, it has no function -->
      <button class="c-button js-file-input-drop c-button__basic c-button__basic--default c-button--md" data-js-file="drop" aria-hidden="true" type="button" aria-label="Drop files here" data-uid="69af3cff56341">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
                    <span class="c-button__label-icon ">
                    <!-- icon.blade.php -->
    <span class="c-icon c-icon--place-item c-icon--material c-icon--material-place_item material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-md" aria-hidden="false" data-material-symbol="place_item" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff5637a">
                    </span>
            </span>
        
                    <span class="c-button__label-text ">
                Drop files here
            </span>
        
    </span> </button>
  <div class="c-fileinput__file-list" data-js-file="list">
            <template data-js-file="listitem-template">
    <div class="c-fileinput__item" data-js-file="listitem" data-js-file-id="">
    <div class="c-fileinput__item-preview" data-js-file="preview">
                <!-- icon.blade.php -->
    <span class="c-icon c-fileinput__attachment-icon c-icon--attach-file c-icon--material c-icon--material-attach_file material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-xl" aria-hidden="false" data-js-file="icon" data-material-symbol="attach_file" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff563e8">
                    </span>
    </div>
        <div class="c-fileinput__info-container">
            <span class="c-fileinput__item-name" data-js-file="filename"></span>
            <span class="c-fileinput__item-size" data-js-file="filesize"></span>
        </div>

        <div class="c-fileinput__item-remove" data-tooltip="Remove file">
                <button class="c-button c-fileinput__item-remove-button c-button__filled c-button__filled--primary c-button--xs" aria-label="Remove file" data-js-file="remove" type="button" data-uid="69af3cff56472">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
                    <!-- icon.blade.php -->
    <span class="c-icon c-fileinput__item-icon c-icon--delete c-icon--material c-icon--material-delete material-symbols material-symbols-rounded material-symbols-sharp material-symbols-outlined  c-icon--size-sm" aria-hidden="false" data-js-file="icon" data-material-symbol="delete" role="img" data-nosnippet="" translate="no" aria-label="Icon: Undefined" data-uid="69af3cff56429">
                    </span>
        
        
        
    </span> </button>        </div>
    </div>
</template>      </div>
  
   <div class="c-fileinput__accepted-files-wrapper" data-js-file="counter-wrapper">
            <div class="c-element" data-uid="69af3cff564de">
        <div class="c-element c-fileinput__accepted-files" data-uid="69af3cff564b2">
        Allowed files: Audios Videos Images
    </div>
    </div>
        
            <div class="c-element c-fileinput__filecounter" data-js-file="counter" data-counter-current="0" data-counter-max="10" aria-hidden="true" aria-live="polite" data-uid="69af3cff5650e">
        /
    </div>
        
   </div>
</div>    </div>
</div>
    <br>
        <button class="c-button c-button__filled c-button__filled--default c-button--md" type="submit" aria-label="Submit" data-uid="69af3cff5654e">   
     <span class="c-button__label">                     <span class="c-button__loader"></span>
        
        
        
                    <span class="c-button__label-text ">
                Submit
            </span>
        
    </span> </button>
</form>
@form(['classList' => ['u-padding__y--4']])
    @fileinput([
        'multiple' => true,
        'filesMin' => 2,
        'label' => 'Choose files',
        'preview' => true,
        'description' => 'Display as a file input area (dropzone, multi file).',
    ])
    @endfileinput
    <br>
    @button([
        'type' => 'submit',
        'text' => 'Submit',
    ])
    @endbutton
@endform

Blade component parameters

Key Default value Type Available values Description
description string - Additional description or instructions.
name files string - files
accept audio/*,video/*,image/* string - What file types to accept. Use MIME types. Example: audio/*,video/*,image/*
multiple false boolean - Allow single or multiple files
label string - Label to show on the field
buttonLabel Select file string - What text to show on the button
buttonRemoveLabel Remove file string - What text to show on the remove button
buttonDropLabel Drop files here string - A label for the drop area
preview false boolean - -
maxSize NULL - Maximum file size allowed in MB. Number (int) in bytes or string (small, medium, large). Default is null (no limit).
uploadErrorMessage NULL - Message to show when upload fails
uploadErrorMessageMinFiles NULL - Message to show when minimum number of files is not met
icon file_upload string - @link:component/icon
required false boolean - If field is required
filesMax 1 integer - Maximum number of files (int). Foced to 1 if multiple is false. Default 10 for multiple.
filesMin 0 integer - Minimum number of files (int). Default is 0.
id string - The DOM id of the component.
classList [] array - Array containing wrapping classes array
attributeList [] array - Array containing keys and values rendered as attributes
containerAware false boolean true/false Makes the component container aware. Appends modifiers --size--xs/sm/md/lg to the component.
Settings location: /var/www/webroot/ROOT/vendor/helsingborg-stad/component-library/source/php/Component/Fileinput/fileinput.json