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
Properties
| Property |
Type |
Default |
Description |
accept |
string |
- |
File type filter (e.g., “image/*,.pdf”) |
multiple |
boolean |
false |
Allow multiple files |
disabled |
boolean |
false |
Disables the upload |
max-size |
number |
- |
Maximum file size in bytes |
max-files |
number |
- |
Maximum number of files |
show-preview |
boolean |
false |
Show image previews |
compact |
boolean |
false |
Use compact layout |
size |
'sm' | 'md' | 'lg' |
'md' |
Size of the dropzone |
Multiple Files
<el-dm-file-upload multiple></el-dm-file-upload>
With Image Preview
<el-dm-file-upload multiple show-preview accept="image/*"></el-dm-file-upload>
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
<el-dm-file-upload max-size="1048576" multiple></el-dm-file-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
<el-dm-file-upload disabled></el-dm-file-upload>
Events
| Event |
Description |
change |
Fired when files are selected |
remove |
Fired 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
| Method |
Description |
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
| Part |
Description |
file-upload |
The main container |
dropzone |
The dropzone area |
file-list |
The file list container |
preview |
The preview grid |
Accessibility
- Keyboard accessible dropzone
- Proper button semantics for file removal
- Screen reader announcements for file operations