File Upload

The File Upload component provides a drag-and-drop file upload area with file list and image preview support.

Installation

npm install @duskmoon-dev/el-file-upload

Usage

import '@duskmoon-dev/el-file-upload/register';
<el-dm-file-upload></el-dm-file-upload>

Live Demo

Basic File Upload

Properties

PropertyTypeDefaultDescription
acceptstring-File type filter (e.g., “image/*,.pdf”)
multiplebooleanfalseAllow multiple files
disabledbooleanfalseDisables the upload
max-sizenumber-Maximum file size in bytes
max-filesnumber-Maximum number of files
show-previewbooleanfalseShow image previews
compactbooleanfalseUse compact layout
size'sm' | 'md' | 'lg''md'Size of the dropzone

Multiple Files

Multiple Files

<el-dm-file-upload multiple></el-dm-file-upload>

With Image Preview

Image Preview

<el-dm-file-upload multiple show-preview accept="image/*"></el-dm-file-upload>

Accept Specific Types

Accept Specific Types

<el-dm-file-upload accept=".pdf,.doc,.docx" multiple></el-dm-file-upload>
<el-dm-file-upload accept="image/*" multiple></el-dm-file-upload>

File Size Limit

File Size Limit (1MB)

<el-dm-file-upload max-size="1048576" multiple></el-dm-file-upload>

Sizes

Upload Sizes

<el-dm-file-upload size="sm"></el-dm-file-upload>
<el-dm-file-upload size="md"></el-dm-file-upload>
<el-dm-file-upload size="lg"></el-dm-file-upload>

Disabled

Disabled Upload

<el-dm-file-upload disabled></el-dm-file-upload>

Events

EventDescription
changeFired when files are selected
removeFired when a file is removed

Event Handling

const upload = document.querySelector('el-dm-file-upload');
upload.addEventListener('change', (event) => {
  console.log('Files:', event.detail.files);
});

upload.addEventListener('remove', (event) => {
  console.log('File removed, remaining:', event.detail.files);
});

Methods

MethodDescription
clear()Clear all files

Programmatic Access

const upload = document.querySelector('el-dm-file-upload');

// Get current files
console.log(upload.files);

// Clear all files
upload.clear();

CSS Parts

PartDescription
file-uploadThe main container
dropzoneThe dropzone area
file-listThe file list container
previewThe preview grid

Accessibility

  • Keyboard accessible dropzone
  • Proper button semantics for file removal
  • Screen reader announcements for file operations