Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Valakov
    Registrato dal
    Mar 2004
    Messaggi
    112

    Javascript altezza e larghezza immagini

    salve a tutti!
    Ho un problema con una funzione che mi deve restituire la larghezza e l'altezza delle immagini.
    Praticamente voglio che inserendo il percorso di un'immagine mi vengano controllate le sue dimensioni.
    lo script che ho fatto è questo.


    codice:
    function imgSize(){
    alert(document.upload.file1.value)
    img = new Image();
    img.src = document.upload.file1.value;
    if ( img.width>65 || img.height>65){ 
    	alert("L' immagine può avere dimensione massima 65 X 65");
    	return false;
    
    }
    
    else {
    	
    	
    	return true;
    }
    }
    questo script funziona correttamente con IE, ma con Mozilla No!
    Per Mozilla le dimensioni delle immagini sono sempre 0x0
    mi sapete dire cosa devo fare per farlo funzionare anche con mozilla?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    img e` parola riservata. Non puoi usarla come nome per una variabile.

    L'immagine deve stare sul server, oppure lo script deve essere modificato (se si riferisce ad una immagine presente nella pagina).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di Valakov
    Registrato dal
    Mar 2004
    Messaggi
    112
    Ho rinominato la variabile img con imgi e il problema rimane.
    Su IE riconosce le dimensioni, ma su mozilla no..
    ma perchè l'immagine deve stare sul server? Javascript non è lato client?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Javascript non ha accesso ai file lato client. Ci mancherebbe.

    Forse usando IE stai lavorando con le protezioni basse (cosa non standard e molto pericolosa se sei in internet).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di Valakov
    Registrato dal
    Mar 2004
    Messaggi
    112
    ok, allora posso spiegarti tutto il mio problema? magari mi puoi dare una mano..
    Io ho fatto uno script in ASP che fa l'upload di piccole immagini (fino a 10k). (lo script funziona correttamente)
    Ora però mi hanno chiesto di non fare partire l'upload per le immagini con dimensioni superiori a 65x65.

    In asp non ho trovato nulla per guardare le dimensioni delle immagini.

    Quindi avevo pensato di fare un controllo in Javascript che guardava l'immagine che l'utente voleva uploadare e nel caso questa avesse le dimensioni maggiori di 65x65 non facesse fare il submit del form.

    Dato che mi hai detto che javascript non può guardare i file sul client allora non posso usare questa soluzione..

    Conosci una via per risolvere il problema?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il controllo va fatto lato server.

    Non conosco ASP, ma ci deve essere qualcosa che permette il controllo.
    Non so che linguaggio usi sotto ASP. Di solito si usa VBS, ma qualcuno usa JS e si puo` usare qualsiasi linguaggio di script.

    Comunque prima devi caricare l'immagine (se vuoi puoi mettere un limite di byte durante l'upload), poi puoi lavorarci.
    Alla peggio puoi caricare il file in una variabile di tipo img e indi andare ad analizzarla (se il linguaggio te lo permette - e` necessario che sappia lavorare con le immagini).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di Valakov
    Registrato dal
    Mar 2004
    Messaggi
    112
    ok, allora continuo a provare con ASP.
    grazie mille!

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Occorre dare il tempo al browser di caricare l'immagine... per esempio:
    codice:
    var myimg = new Image();
    function precarica(obj){
    	myimg.src = obj.value;
    }
    function misura() {
    if ( myimg.width>65 || myimg.height>65){ 
    	alert("L' immagine può avere dimensione massima 65 X 65");
    	return false;
    } else {
    	return true;
    }
    }
    
    ...
    
    <form ... onsubmit="return misura()">
    ...
    <input type="file" ... onchange="precarica(this)">
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 1999
    Messaggi
    336

    scusa l'intromissione

    Ho trovato molto interessante la vostra discussione in merito alla rilevazione delle dimensioni delle immagini.
    Volevo sapere ... se nel modulo ho 2 <imput type ="file" >etcc.. che hanno name , ad ex.... file1 e file2, come posso implementare lo script?


  10. #10
    a me comunque con firefox non funziona...

    codice:
    var img_high = new Image();
    var img_low = new Image();
    
    function precarica1(obj){
    	img_low.src = obj.value;
    }
    
    function precarica2(obj){
    	img_high.src = obj.value;
    }
    function misura(){
    if(img_low.width==45 || img_low.height==60){ 
    		alert("L'immagine a bassa risoluzione deve avere dimensione 45x60px");
    		return false;
    	}
    	if(img_high.width==165 || img_high.height==245){
    		alert("L'immagine ad alta risoluzione deve avere dimensione 165x245px");
    		return false;
    	}
    }
    Ti accade sempre quello che non deve accadere...

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.