Skip to content

Instantly share code, notes, and snippets.

@andresmatasuarez
Created December 2, 2014 20:39
Show Gist options
  • Save andresmatasuarez/486f1cc1530495e28a8b to your computer and use it in GitHub Desktop.
Save andresmatasuarez/486f1cc1530495e28a8b to your computer and use it in GitHub Desktop.
AngularJS | Service | FileReader and ImageReader services (HTML5 File API)
'use strict'
app = angular.module 'app'
app.factory 'FileReader', ($q) ->
readDataAsUrl: (file, scope) ->
deferred = $q.defer()
reader = new FileReader()
reader.onload = ->
scope.$apply ->
deferred.resolve reader.result
reader.onerror = ->
scope.$apply ->
deferred.reject reader.result
reader.onprogress = (event) ->
scope.$broadcast 'fileProgress',
total : event.total
loaded : event.loaded
reader.readAsDataURL file
deferred.promise
'use strict'
app = angular.module 'app'
app.factory 'ImageReader', ($q, FileReader) ->
readDataAsUrl: (imageFile, scope) ->
FileReader.readDataAsUrl imageFile, scope
.then (result) ->
deferred = $q.defer()
img = new Image()
img.onload = ->
scope.$apply ->
deferred.resolve img
img.onerror = ->
scope.$apply ->
deferred.reject img
img.src = result
deferred.promise
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment