Check out the Demo
npm i ngx-file-drag-drop
selector: <ngx-file-drag-drop>
implements: ControlValueAccessor to work with angular forms
Additionnal properties
| Name | Description | 
|---|---|
@Input() multiple: boolean | 
Allows multiple file inputs, false by default | 
@Input() accept: string | 
Any value the native accept attribute can get. Doesn't validate input. | 
@Input() disabled: boolean | 
Disable the input. | 
@Input() emptyPlaceholder : string | 
Placeholder for empty input, default Drop file or click to select | 
@Input() displayFileSize : boolean | 
Show file size in chip rather than in tooltip, default false | 
@Input() activeBorderColor: string | 
A css color for when file is dragged into drop area, default purple | 
@Output() valueChanged:EventEmitter<File[]> | 
Event emitted when input value changes | 
addFiles():(files: File[] | FileList | File) => void | 
Update input | 
removeFile():(file:File) => void | 
Removes the file from the input | 
clear(): () => void | 
Removes all files from the input | 
files: File[] | 
Getter for form value | 
isEmpty: boolean | 
Whether the input is empty (no files) or not | 
Usage:
<span>{{ 104857600 | byteFormat }}</span>Output: 100 MB
import { FileValidators } from "ngx-file-drag-drop";| Validator | Description | 
|---|---|
uniqueFileNames | 
Disallow two files with same file name | 
fileExtension(ext: string[]) | 
Required file extensions | 
fileType(types: string[] | RegExp) | 
Required Mime Types | 
maxFileCount(count: number) | 
Max number of files | 
maxFileSize(bytes: number) | 
Max bytes allowed per file | 
maxTotalSize(bytes: number) | 
Max total input size | 
required | 
At least one file required |