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)