Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di medorex
    Registrato dal
    Apr 2002
    Messaggi
    252

    solo controllo dimensione immagine

    Ciao a tutti, è possibile in JS far solo controllare la dimensione delle immagini che un utente vuole caricare tramite form prima del submit?
    Ci vuole qualcosa do lato server?
    Se possibile, visto che di js non ci capisco una ramazza... avete qualche script gia fatto o qualche link di sito che ne fa raccolta?

    Grazie a tutti
    Medo
    Ma quando impareremo mai ??

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    JS non e` in grado di accedere al filesystem del client (problemi di privacy).

    Devi quindi prima caricare il file e poi controllare lato server.

    Se il file da caricaare e` un'immagine, a volte e` possibile analizzarla lato client; fai una ricerca nel forum (bottone in alto a dx): la cosa e` gia` stata risolta.
    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 medorex
    Registrato dal
    Apr 2002
    Messaggi
    252
    Ti ringrazio, ho gia cercato nel forum e non ho trovato nulla che facesse solo il controllo di una foto, mandi un' alert se non rispetta i requisiti e che sia compatibile anche con ff.
    Ingegnandomi un pò ho trovato/creato/modificato questo script, ma non va in ff e ne so troppo poco per risolvere la cosa da solo...
    codice:
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_findObj(n, d) { 
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    
    function tmt_checkImgObj(){
    	var errorMsg="";
    	if(this.maxS!=""&&this.fileSize/1000>this.maxS){
    		errorMsg+="peso massimo: "+this.maxS+" kilobytes \n";}
    	if(this.minS!=""&&this.fileSize/1000<this.minS){
    		errorMsg+="peso minimo: "+this.minS+" kilobytes \n";}
    	if(this.maxW!=""&&this.width>this.maxW){
    		errorMsg+="lunghezza massima ammessa: "+this.maxW+" pixels \n";}
    	if(this.minW!=""&&this.width<this.minW){
    		errorMsg+="Minimum width allowed for images is: "+this.minW+" pixels \n";}
    	if(this.maxH!=""&&this.height>this.maxH){
    		errorMsg+="altezza massima consentita: "+this.maxH+" pixels \n";}	
    	if(this.minH!=""&&this.height<this.minH){
    		errorMsg+="Minimum height allowed for images is: "+this.minH+" pixels \n";}	
    	if(errorMsg==""){
    		if(this.fW){var fW=MM_findObj(this.fW);if(fW){fW.value=this.width;}}
    		if(this.fH){var fH=MM_findObj(this.fH);if(fH){fH.value=this.height;}}}
    		else{alert(errorMsg);}document.MM_returnValue=(errorMsg=="");
    }
    
    function tmt_createImgObj(imgURL,loadHandler,minW,maxW,minH,maxH,minS,maxS,fW,fH){
    	document.MM_returnValue=false; var img=new Image();img.minW=minW;img.maxW=maxW;img.minH=minH;img.maxH=maxH;
    	img.fW=fW;img.fH=fH;img.minS=minS;img.maxS=maxS;img.onload=loadHandler;img.src=imgURL;
    }
    
    function tmt_CheckImg(formElement,minW,maxW,minH,maxH,minS,maxS,mime,fW,fH){
    	document.MM_returnValue=true;if(document.getElementById){var obj=MM_findObj(formElement);
    	var f=obj.form.name;if(obj&&f){var exRex=new RegExp("\\.("+mime+")$","i");
    	var noWhiteRex=/\\[\w_]*\.(\w{3})$/i;if(exRex.test(obj.value)&&noWhiteRex.test(obj.value)){	
    	var imgURL="file:///"+obj.value;tmt_createImgObj(imgURL,tmt_checkImgObj,minW,maxW,minH,maxH,minS,maxS,fW,fH);
    	eval("setTimeout(\"if(document.MM_returnValue){document."+f+".submit()}\",300)");}
    	else{document.MM_returnValue=false;alert("solo file "+mime+" senza spazi vuoti sono ammessi");
    	obj.focus();obj.select();}}}
    }
    //-->
    </script>
    e  poi sul campo:
      <input name="foto" type="file" id="foto" onChange="tmt_CheckImg('foto','1','100','1','100','1','300','jpg|jpeg|gif','','');return document.MM_returnValue">
    Help!
    Medo
    Ma quando impareremo mai ??

  4. #4
    Utente di HTML.it L'avatar di medorex
    Registrato dal
    Apr 2002
    Messaggi
    252
    ho scoperto inoltre che non fa un buon controllo sulle immagini di grandi dimensioni.. a volte le vede a volte no...

    niente di precotto, nè?
    medo
    Ma quando impareremo mai ??

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    la funzione che hai trovato e` di quelle precotte di MacroMedia, che in generale fornisce soluzioni generalistiche, ma non per questo ottimizzate. Inoltre spesso e` codice offuscato (difficile da verificare).

    Pero` io ho fatto ora una ricerca nel forum

    ed ho trovato (tra gli altri):
    http://forum.html.it/forum/showthrea...o+AND+immagine
    upload controllo dimensione immagine (ora la rete e` lenta e non riesco a caricarlo)
    controllo immagine in cache
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it L'avatar di medorex
    Registrato dal
    Apr 2002
    Messaggi
    252
    grazie ora ho trovato qualcosa, ma giuro che all' epoca non ho trovato nulla...
    mi spiace di aver aperto un nuovo inutile 3d ma le ricerche prima io le faccio sempre!
    Ciao e grazie
    Ma quando impareremo mai ??

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.