Skip to content

Instantly share code, notes, and snippets.

@seungjin
Created September 30, 2010 21:28
Show Gist options
  • Save seungjin/605352 to your computer and use it in GitHub Desktop.
Save seungjin/605352 to your computer and use it in GitHub Desktop.
<html>
<head>
</head>
<body>
<h1>reading file from arg</h1>
browser try to read "/Users/seungjin/Desktop/test"<br/>view the javascript src.<br/>
<code id="console1">...console1...</code>
<hr/>
<h1>reading file from input</h1>
<input type="file" name="fichier" id="fichier" onchange="inputFileOnChange();" />
<br /><br />
<code id="console2">...console2...</code>
</body>
<script type="text/javascript">
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
alert("Permission UniversalBrowserRead denied.");
}
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
} catch (e) {
alert("Permission UniversalBrowserWrite denied.");
}
try {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
} catch (e) {
alert("Permission UniversalXPConnect denied.");
}
var readfile = function(srcfile) {
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( srcfile );
if ( file.exists() == false ) {
alert("File does not exist");
}
var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
is.init( file,0x01, 00004, null);
var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance( Components.interfaces.nsIScriptableInputStream );
sis.init( is );
var output = sis.read( sis.available() );
document.getElementById('console1').innerHTML = output;
console.log(output);
};
var inputFileOnChange = function() {
var v_console = '';
v_console += 'value: ' + document.getElementById('fichier').value;
v_console += '<br \/>';
if(document.getElementById('fichier').files) {
// Support: nsIDOMFile, nsIDOMFileList
v_console += 'files.length: ' + document.getElementById('fichier').files.length;
v_console += '<br \/>';
v_console += 'fileName: ' + document.getElementById('fichier').files.item(0).fileName;
v_console += '<br \/>';
v_console += 'fileSize: ' + document.getElementById('fichier').files.item(0).fileSize;
v_console += '<br \/>';
v_console += 'data: ' + document.getElementById('fichier').files.item(0).getAsDataURL();
// v_console += 'data: ' + document.getElementById('fichier').files.item(0).getAsBinary();
// v_console += 'data: ' + document.getElementById('fichier').files.item(0).getAsText();
v_console += '<br \/>';
};
document.getElementById('console2').innerHTML = v_console;
};
readfile("/Users/seungjin/Desktop/text");
</script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment