Actually I met with this issue for years. However, the modern solutions allow us really to approach this issue in a meaningful way, not related to one specific browser.
Read files in JavaScript and HTML5
Among the easiest ways, we can mention loading the file contents via AJAX; in case of jQuery we can use the get() method:
jQuery.get('test.txt', function(data) {
alert(data);
// process …
// $('#mydiv').html(data.replace('n', '<br />'));
});
On-line example:
http://dominik-w.pl/tester_file_read.html
Be aware about limitations of this method (access to files on the local file system), as well as issues related with Same-origin policy.
During the various works with HTML5 Canvas, I met with the code as shown below, which acted as it should be, and in different browsers (newer versions).
Example — read image file in JavaScript and display on HTML5 Canvas
function loadImage() {
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var imgSrc =
'http://dominik-w.pl/direct-code-logo-company-200x.png';
// add file:// if user specified local path
if (imgSrc.indexOf("//") == -1 && imgSrc.indexOf(".") != 0) {
imgSrc = "file:///" + imgSrc;
}
// load file into canvas and adjust params
var img = new Image();
img.onload = function() {
width = img.width;
height = img.height;
canvas.width = width;
canvas.height = height;
ctx.drawImage(img, 0, 0);
// get image data
try {
imageData = ctx.getImageData(0, 0, width, height);
} catch(e) {
// !
netscape.security.PrivilegeManager.
enablePrivilege("UniversalBrowserRead");
imageData = ctx.getImageData(0, 0, width, height);
}
}
img.src = imgSrc;
}
The code works very well; canvas area adapts to the size of the image.

A full example on GitHub:
https://github.com/dominik-w/js_html5_com/blob/master/tester_canvas_file.html
Additional resources
By the way, there’s a lot of interesting solution to work with files in JavaScript, for example:
– FileAPI
http://mailru.github.io/FileAPI/
– WebKit and working with files
– Reading Files Using The HTML5 FileReader API (teamtreehouse.com)
http://blog.teamtreehouse.com/reading-files-using-the-html5-filereader-api
– Using files from web applications (MDN):
https://developer.mozilla.org/pl/docs/Using_files_from_web_applications
– Binary — working with binary files in JavaScript:
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data
– Binary.js!
Summary
Short and to the point. As you can see, at present there are no major problems to work with files from JavaScript and HTML5 level.
Have fun!
Posted in
Tags: