Local file access with JavaScript
Solution 1:
Just an update of the HTML5 features is in http://www.html5rocks.com/en/tutorials/file/dndfiles/. This excellent article will explain in detail the local file access in JavaScript. Summary from the mentioned article:
The specification provides several interfaces for accessing files from a 'local' filesystem:
- File - an individual file; provides readonly information such as name, file size, MIME type, and a reference to the file handle.
- FileList - an array-like sequence of File objects. (Think
<input type="file" multiple>
or dragging a directory of files from the desktop). - Blob - Allows for slicing a file into byte ranges.
See Paul D. Waite's comment below.
Solution 2:
If the user selects a file via <input type="file">
, you can read and process that file using the File API.
Reading or writing arbitrary files is not allowed by design. It's a violation of the sandbox. From Wikipedia -> Javascript -> Security:
JavaScript and the DOM provide the potential for malicious authors to deliver scripts to run on a client computer via the web. Browser authors contain this risk using two restrictions. First, scripts run in a sandbox in which they can only perform web-related actions, not general-purpose programming tasks like creating files.
2016 UPDATE: Accessing the filesystem directly is possible via the Filesystem API, which is only supported by Chrome and Opera and may end up not being implemented by other browsers (with the exception of Edge). For details see Kevin's answer.