in realtà si può fare con ajax. L'unica condizione è che il file si trovi sullo stesso dominio dello script, per le limitazioni dell'oggetto XMLHTTPRequest()
Ecco lo script
codice:<html> <head> <script type="text/javascript"> // ****************************** // /* Author : Fabrizio Calderan * Date : 2005.11.14 * Url : http://www.fabriziocalderan.it */ function filesize(file, id) { var xmlHttpObj = null; var size = null; if (typeof XMLHttpRequest != "undefined") { xmlHttpObj = new XMLHttpRequest(); } else { try { xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlHttpObj = null; } } } xmlHttpObj.open("HEAD", file, true); xmlHttpObj.onreadystatechange = function() { if (xmlHttpObj.readyState == 4) { switch(xmlHttpObj.status) { case 200: // Page found case 304: // Status Code on Opera when page reload size = xmlHttpObj.getResponseHeader("Content-Length"); document.getElementById(id).innerHTML = size; return; break; case 0: // Worong protocol alert("Can't load file using 'file://' protocol") return; break; case 404: // Page not found alert("File not found: "+file); return; break; default: alert("Unrecognized status code: ["+xmlHttpObj.status+"]") return; break; } } } xmlHttpObj.send(null); delete xmlHttpObj; } </script> </head> <body> File: magnolia.pdf - Size: <span id="magnolia_size"> </span> <script type="text/javascript"> filesize('magnolia.pdf', 'magnolia_size'); </script> </body>
Come funziona??? Ho messo un file pdf nella stessa cartella dello script. Il file si chiamava magnolia.pdf. La funzione filesize accetta due parametri:
- il nome del file
- l'id del placeholder (segnaposto) in cui scrivere la dimensione del file
Ovviamente lo script va posto _dopo_ l'elemento segnaposto.
Salvate il codice com file .html e provatelo in un webserver (anche locale) e mettendo un file a vs scelta da controllare
Enjoy.
Fabrizio
![]()
![]()
(tags: dimensione file javascript file size)

Rispondi quotando