ng-file-upload is an Angular directive for handling multipart file uploads and drag-and-drop selection within Angular applications. It functions as a client-side tool for validating file attributes, processing images, and generating media previews before transmission to a server.
The project includes a client-side image processor for resizing, center-cropping, and correcting JPEG EXIF orientation. It also features a browser-based media previewer for images, audio, and video files, and an HTML5 File API shim to provide upload and reader functionality for legacy browsers.
Additional capabilities include the ability to attach metadata to uploads, monitor real-time upload progress, and validate file properties such as size, type, and image dimensions. The system supports selecting files via standard inputs or designated drop zones.