Because of this, I am a little leery of publishing the project, but nevertheless am doing so because I find it so useful when implementing load and save buttons.
If, alternatively, you intend to make use of Halogen's onFileUpload event, then this treats files in terms of the Web File API. This approach requires the use of a subsequent loadend callback which I think means that coroutines must be used if you need to get hold of the file's contents.
bower install pulp build
npm run halogen-example
And then navigate to the halogen_example/dist directory.