Google Gears Desktop API - Working with files
The Google Gears Desktop API allows you to create shortcuts on your desktop (only to a page on the same site, not to another) and work with files. This example shows you how you can filter the file types when choosing files. gears_init.js required.
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>Google Desktop API - Working with files</title> <script type="text/javascript" src="gears_init.js"></script> <script type="text/javascript"> var fileformats = { // word document word: 'application/msword', // word 2007 document wpml: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // excel spreadsheet excel: 'application/vnd.ms-excel', // excel 2007 spreadsheet ssml: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // powerpoint presentation powerpoint: 'application/vnd.ms-powerpoint', // powerpoint 2007 presentation pml: 'application/vnd.openxmlformats-officedocument.presentationml.presentation', // jpeg jpeg: 'image/jpeg', // png png: 'image/png', // gif gif: 'image/gif', // tiff tiff: 'image/tiff' } // http://code.google.com/apis/gears/api_desktop.html var desktop = google.gears.factory.create('beta.desktop'); function officeFiles() { desktop.openFiles(openFilesCallback, {singleFile: false, filter: [fileformats.word, fileformats.wpml, fileformats.excel, fileformats.ssml, fileformats.powerpoint, fileformats.pml] }); } function imageFiles() { desktop.openFiles(openFilesCallback, {singleFile: false, filter: [fileformats.jpeg, fileformats.png, fileformats.gif, fileformats.tiff] }); } function openFilesCallback(files) { if(files.length == 0) { alert("No files selected"); } else { var selectedFiles = []; for(var i = 0; i < files.length; i++) { selectedFiles.push(files[i].name + " (" + files[i].blob.length + " bytes)"); } alert("Selected files: " + selectedFiles); } } </script> </head> <body> <p><a href="http://code.google.com/apis/gears/api_desktop.html">Google Gears Desktop API</a></p> <form action="" method="post"> <input value="Select Office Files" type="button" id="selectofficefiles"> <input value="Select Image Files" type="button" id="selectimagefiles"> </form> <script type="text/javascript"> var selectofficefiles = document.getElementById("selectofficefiles"); selectofficefiles.onclick = function() { officeFiles(); return false; } var selectimagefiles = document.getElementById("selectimagefiles"); selectimagefiles.onclick = function() { imageFiles(); return false; } </script> </body> </html>
The benefit of using Google Gears is that you can get the file size before uploading the file, so a check can be done beforehand to see if the file is to big (e.g. if(files[i].blob.length > 1048576) alert(files[i].name + " too big (> 1MB)");
.
Comments