Creating an UploadService to Work with Flow.js and Ng-flow

Having the ability to upload files was an important requirement for a recent project. Users of the AngularJS application needed to include different types of images, including a standardized zip-file of images, to complete the tasks associated with the solution.
The flow.js framework and associated ng-flow AngularJS directive seemed to be a perfect fit for the upload requirements. Ng-flow is built on top of flow.js and provides a quick and easy implementation where end-users can select or drag-and-drop files onto the screen where they can be uploaded. If configured correctly, a ghost version of the images appears – showing a preview while the file(s) are being uploaded. Finally, event handling provides a mechanism where business logic could be applied (like checking for duplicates, valid image type and size, etc.) before the upload process begins.