awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
danialfarid avatar

danialfarid/ng-file-upload

0
View on GitHub↗
7,797 stars·1,544 forks·JavaScript·MIT·19 views

Ng File Upload

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.

Features

  • File Uploads - Handles the transmission of files to remote endpoints using multipart form data and binary streams.
  • Angular Integrations - Provides an Angular directive for handling multipart file uploads with metadata and progress tracking.
  • Dropzone File Uploads - Implements a drag-and-drop upload area with integrated previews, validation, and progress feedback.
  • Media Selection Previews - Provides real-time visual or audio previews of images, audio, and video files during the selection process.
  • HTTP File Uploads - Enables the transmission of single or multiple files to remote server endpoints via HTTP requests.
  • Upload Progress Tracking - Monitors the number of bytes sent via XMLHttpRequest to calculate real-time upload percentages.
  • Upload Logic Bindings - Binds upload logic to DOM elements via an Angular directive to manage file input and drag-and-drop events.
  • File Previewers - Generates thumbnails and data-URL previews for media files to show the user before upload.
  • Drag-and-Drop File Upload - Allows users to select files by dragging them from the local system into a designated drop zone.
  • Local Media Previews - Generates temporary local URLs or base64 strings from file blobs to display media content before upload.
  • Client-Side File Validations - Validates file types, sizes, and dimensions in the browser before initiating an upload.
  • Multipart Uploads - Encodes files and metadata into multipart/form-data bodies for server-side processing.
  • Multipart Form Uploads - Send a file to a server endpoint along with key-value data pairs to provide context for the upload.
  • Chunked Uploaders - Splits large files into smaller segments for more reliable transmission to the server.
  • Client-Side Image Editing - Implements browser-based image resizing and EXIF orientation correction before transmission.
  • Image Processing - Provides native tools to resize, center-crop, and correct JPEG EXIF orientation for images.
  • Orientation Correction Utilities - Automatically adjusts image rotation and aspect ratio by reading embedded EXIF metadata.
  • Media File Validations - Checks files against criteria including type, size, image dimensions, aspect ratio, and media duration.
  • Image Transformation Utilities - Implements utilities for resizing, rotating, and cropping images before they are uploaded or displayed.
  • In-Browser Media Previews - Provides a utility for rendering thumbnails and data-URL previews of media files directly in the browser.
  • Upload State Bindings - Links UI elements to the upload lifecycle to track progress and manage transfer cancellation.
  • Request Metadata Attachment - Attaches custom text fields and metadata to file upload requests for server-side context.

Star history

Star history chart for danialfarid/ng-file-uploadStar history chart for danialfarid/ng-file-upload

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Ng File Upload

Similar open-source projects, ranked by how many features they share with Ng File Upload.
  • kartik-v/bootstrap-fileinputkartik-v avatar

    kartik-v/bootstrap-fileinput

    5,350View on GitHub↗

    bootstrap-fileinput is a Bootstrap-compatible HTML5 file upload widget and plugin. It provides a customizable interface for selecting and uploading multiple files, featuring integrated image previews, drag-and-drop support, and client-side validation for file types, sizes, and counts. The project includes a resumable file upload client that slices large files into chunks to ensure stability over intermittent connections and allow transfers to be paused and resumed. It also features a client-side image processor capable of resizing images and reading EXIF metadata to automatically correct imag

    JavaScriptajax-uploadbootstrapbootstrap-fileinput
    View on GitHub↗5,350
  • dropzone/dropzonedropzone avatar

    dropzone/dropzone

    18,377View on GitHub↗

    Dropzone is a JavaScript file upload library that provides a browser-based interface for capturing dropped files and transmitting them to a server. It functions as a multipart upload client, splitting large files into smaller chunks to increase transmission reliability and bypass server size limits. The library includes a client-side image processor capable of resizing images and correcting photo orientation in the browser before they are sent to a server. It generates image thumbnails and visual previews immediately after selection, and can render previews for files already hosted on a serve

    JavaScriptdrag-and-dropdropzonefile-upload
    View on GitHub↗18,377
  • blueimp/jquery-file-uploadblueimp avatar

    blueimp/jQuery-File-Upload

    30,748View on GitHub↗

    This project is a jQuery-based file upload widget that provides a browser interface for selecting and transferring files to a server. It functions as a chunked file uploader and a resumable upload client, enabling the transfer of large files by splitting them into smaller segments or continuing interrupted uploads from the last successfully sent byte. The tool includes a client-side image processor for validating, resizing, and generating previews of images before transmission. It also serves as a cross-domain upload tool, using various transport mechanisms to send files to different domains

    PHP
    View on GitHub↗30,748
  • nervgh/angular-file-uploadnervgh avatar

    nervgh/angular-file-upload

    3,396View on GitHub↗

    This project is a file upload module designed for the AngularJS framework, providing a comprehensive system for managing file selection, validation, and asynchronous transmission. It enables developers to build interactive web interfaces that capture local files through standard inputs or drag-and-drop zones, facilitating the entire lifecycle of a file transfer from initial selection to server-side upload. The library distinguishes itself through its focus on cross-browser consistency and granular control over the upload process. It includes an automatic fallback mechanism that routes data th

    JavaScriptangular-file-upload
    View on GitHub↗3,396
See all 30 alternatives to Ng File Upload→

Frequently asked questions

What does danialfarid/ng-file-upload do?

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.

What are the main features of danialfarid/ng-file-upload?

The main features of danialfarid/ng-file-upload are: File Uploads, Angular Integrations, Dropzone File Uploads, Media Selection Previews, HTTP File Uploads, Upload Progress Tracking, Upload Logic Bindings, File Previewers.

What are some open-source alternatives to danialfarid/ng-file-upload?

Open-source alternatives to danialfarid/ng-file-upload include: kartik-v/bootstrap-fileinput — bootstrap-fileinput is a Bootstrap-compatible HTML5 file upload widget and plugin. It provides a customizable… dropzone/dropzone — Dropzone is a JavaScript file upload library that provides a browser-based interface for capturing dropped files and… blueimp/jquery-file-upload — This project is a jQuery-based file upload widget that provides a browser interface for selecting and transferring… nervgh/angular-file-upload — This project is a file upload module designed for the AngularJS framework, providing a comprehensive system for… danielm/uploader — Uploader is a client-side library designed to manage asynchronous file transfers within web applications. It provides… chenshenhai/koa2-note — koa2-note is a project focused on Koa2 web server development and Node.js asynchronous programming. It provides a…