Angular File Upload
- compatible with AngularJS v1.x
About
Angular File Upload is a module for the AngularJS framework. Supports drag-n-drop upload, upload progress, validation filters and a file upload queue. It supports native HTML5 uploads, but degrades to a legacy iframe upload method for older browsers. Works with any server side platform which supports standard HTML form uploads.
When files are selected or dropped into the component, one or more filters are applied. Files which pass all filters are added to the queue. When file is added to the queue, for him is created instance of {FileItem}
and uploader options are copied into this object. After, items in the queue (FileItems) are ready for uploading.
Package managers
NPM
npm install angular-file-upload
You could find this module in npm like angular file upload.
Yarn
yarn add --exact angular-file-upload
You could find this module in yarn like angular file upload.
Module Dependency
Add 'angularFileUpload'
to your module declaration:
var app = angular.module('my-app', [
'angularFileUpload'
]);
Demos
More Info
Browser compatibility
This module uses the feature detection pattern for adaptation its behaviour: fd1, fd2.
You could check out features of target browsers using http://caniuse.com/. For example, the File API feature.
Feature/Browser | IE 8-9 | IE10+ | Firefox 28+ | Chrome 38+ | Safari 6+ |
---|---|---|---|---|---|
<input type="file"/> |
+ | + | + | + | + |
<input type="file" multiple/> |
- | + | + | + | + |
Drag-n-drop | - | + | + | + | + |
Iframe transport (only for old browsers) | + | + | + | + | + |
XHR transport (multipart,binary) | - | + | + | + | + |
An image preview via Canvas (not built-in) | - | + | + | + | + |
AJAX headers | - | + | + | + | + |
How to ask a question
A right way to ask a question
If you have a question, please, follow next steps:
- Try to find an answer to your question using search
- If you have not found an answer, create new issue on issue-tracker
Why email a question is a bad way?
When you emal me a question:
- You lose an opportunity to get an answer from other team members or users (devs)
- It requires from me to answer on same questions again and again
- It is not a rational way. For example, if everybody who use code of this project will have emailed me a question then I will be receiving ~700 emails each day =)
- It is a very slow way. I have not time for it.