Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905

    [js] dimensione di un file

    è possibile sapere la dimensione di un file caricato da un form?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    solo nel caso di immagini e solo con IE

  3. #3
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    .....ok

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    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)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    no io devo ricavare la dimensione di un file uppato

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    dopo che l'hai uppato lo posizioni in una cartella sul server, lo rinomini con il nome che vuoi e lo controlli con questo script, no??

    Altrimenti usi un linguaggio lato server tipo quello che hai come avatar
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    lo so però il mio problema è che sto facendo una barra di avanzamento di upload..capisci?? devo sapere la dimensione attuale uppata (e so come) e quella totale

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    in effetti la tua domanda ora è un (bel pò) differente dalla prima...

    all'inizio chiedevi della dimensione di un file _caricato_
    mentre quello che volevi tu era una progress bar _durante_ l'upload...

    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    si se sapessi la dimensione l'ho già fatta..

  10. #10
    carica l'oggetto piu' avanzato e facilmente aggiornabile la lista degli oggetti, al posto di mettere sempre il risultato dentro un div si possono trattare i dati come si vogliono all'interno di una funzione... dell'oggetto si puo' utilizzare sia il contenuto che sapere la sua dimensione


    codice:
    <!---
    // ****************************** //
    
    /* Author : Fabrizio Calderan
     * Date   : 2005.11.14
     * Url    : http://www.fabriziocalderan.it
       Modificated : Sottana Marco
       Date        : 2005.11.15
       Url         : http://www.brain-farm.com
       Icq         : 210139517
     */
    ----->
    
    <html>
    <head>
    
    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
    function funf(e){
    	f=document.getElementById("div_id");
    	f.innerHTML=""+ e.text + "
    ";
    	f.innerHTML+="size = "+ e.size + "";
    }
    </SCRIPT>
    
    <script type="text/javascript">
    
    
    
    function createXMLHttp() {
        var xmlhttp ;
        try {
            xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
        } catch (e) {
            var MSXML_XMLHTTP_PROGIDS = new Array(
                'MSXML2.XMLHTTP.5.0',  
                'MSXML2.XMLHTTP.4.0',
                'MSXML2.XMLHTTP.3.0',
                'MSXML2.XMLHTTP',      // Internet Explorer 6
                'Microsoft.XMLHTTP'   // Internet Explorer 4,5
            );
            var success = false;
            for (var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !success; i++) {
                try {
                    xmlhttp = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
                    success = true;
    				
                } catch (e) {}
            }
            if ( !success ) {
                alert('Cant create XMLHttpRequest - not supported');
            }
        }
    	return xmlhttp;
    }
    
    
    
    function getFile(file,callbackFunction) {
    
        var xmlHttpObj = null;
        xmlHttpObj=createXMLHttp();
    //    xmlHttpObj.open("HEAD", file, true);
    	xmlHttpObj.open('get', file); 
             
        xmlHttpObj.onreadystatechange = function() {
            if (xmlHttpObj.readyState == 4) {
                switch(xmlHttpObj.status) {
                    case 200: // Page found
                    case 304: // Status Code on Opera when page reload
                         this.size = xmlHttpObj.getResponseHeader("Content-Length");
    					 this.text = xmlHttpObj.responseText;
    					 callbackFunction(this);
                         return;
                         break;
                         
                    case 0: // Worong protocol
                        alert("001 Can't load file using 'file://' protocol")
                        return;
                        break;
                        
                    case 404: // Page not found
                        alert("002 File not found: "+file);
                        return;
                        break;
                        
                    default:
                        alert("003 Unrecognized status code: ["+xmlHttpObj.status+"]")
                        return;
                        break;
                }
            }            
        }          
        xmlHttpObj.send(null); 
        delete xmlHttpObj;
        
    
    }
    
    
    </script>
    
    
    
    </head>
    
    <body>
    <div id="div_id"> </div>
    
    carica
    </script>
    </body>
    www.3viso.com pubblica i tuoi comunicati stampa
    3viso.net/forum cerca Articolisti 2€ ad articolo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.