HTML5 provides very powerful APIs to interact with binary data and a user's local file system. The File APIs give web applications the ability to do things like read files [a]synchronously, create arbitrary Blobs, write files to a temporary location, recursively read a file directory, perform file drag and drop from the desktop to the browser, and upload binary data using
As examples, the File APIs can be used to create a thumbnail preview of images as they're being sent to the server, or allow an app to save a file reference while the user is offline. Using the Web Audio API, your app could read an .mp3 file and display a visualization of the song as it plays. Additionally, you could use client-side logic to verify an upload's mimetype matches its file extension or restrict the size of an upload.