hx-pod
hx-pod
Lazarus
Advanced htmx: hx-encoding
5 minutes Posted Apr 2, 2024 at 3:26 pm.
0:00
5:32
Download MP3
Show notes

An amazingly simple file uploading form *with a progress bar* using htmx:

<form id='form'
      hx-encoding='multipart/form-data'
      hx-post='/[where-you-want-post-it]'
      hx-target='#target-div'>
    <input type="hidden" name="_token" value="{{ csrf_token() }}" />
    <input type='file' name='file'>
    <button>
        Upload
    </button>
    <progress id='progress' value='0' max='100'></progress>
</form>
<script>
    htmx.on('#form', 'htmx:xhr:progress', function(evt) {
      htmx.find('#progress').setAttribute('value', evt.detail.loaded/evt.detail.total * 100)
    });
</script>