Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Verificare presenza file remoto

    Ciao ragazzi so che è una cosa detta e ridetta ma devo eseguire un controllo sull'esistenza di un'immagine in remoto dato un link...
    ho una funzione così strutturata:
    codice:
    function file_exists(url) {
    
    	// Fire up the AJAX function
    	var req = (function() {
    		if (typeof XMLHttpRequest == "function") {
    			return new XMLHttpRequest();
    		} else {
    			XMLHttpRequest = function () {
    				try {return new ActiveXObject("Msxml2.XMLHTTP.6.0");}catch(e){};
    				try {return new ActiveXObject("Msxml2.XMLHTTP.3.0");}catch(e){};
    				try {return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){};
    				return false;
    			};
    		}
    	}());
    	req.open('HEAD', url, false);
    	req.send(null);
    	return (req.status >= 200 && req.status < 300);
    }
    mi esegue il controllo egregiamente però se il link è sbagliato non mi fa ritornare niente!!!
    cioè se io metto ad esempio

    www.miosito.com/image.jpg (immagine esistente)
    ritorna vero

    seio metto
    www.miosito.com/im<<<age.jpg (immagine non esistente)
    ritorna falso

    ma se io metto
    www.mio<<<<sito.com/image.jpg

    non mi segnala niente!!

    tralasciando il fatto che per fare l'esempio ho messo il carattere <<< è per far capire che se sbaglio l'url non mi restituisce niente! cosa devo fare per mandarmelo in errore?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Dipendera' forse dal fatto che ajax non puo' funzionare con siti diversi dal tuo? ovvero con siti che non siano lo stesso dal quale sono interrogati.

    ciao

    ps: puoi usare la sempreverde alternativa che funziona con qualunque sito:

    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

  3. #3
    mmm mi potresti spiegare come usarla cortesemente? la metto nel file js? come faccio a fare il controllo in quel modo?

  4. #4
    immagino che devo creare un'immagine in js e poi eseguire il controllo vero?
    ma come posso fare per creare una funzione che se mi crea l'immagine allora mi restituisce true altrimenti false?

  5. #5
    Ho trovato questa guida praticamente ti fa creare un'immagine e applica all attributo onerror una funzione che dovrebbe essere richiamata
    http://www.irt.org/script/52.htm
    Ma non mi funziona, non mi richiama nessuna delle due funzioni! Stavo pensando di fargli modificare una variabile globale che poi avrei controllato per capire se questo file esiste o meno..

  6. #6
    ho provato a mettere questo nel codice:

    codice:
    				  imageExistsToControl = 0;
    			      var tester=new Image();
    				  tester.onerror=function(){ imageexists(false) }
    				  tester.onload=function(){ imageexists(true) }
    				  tester.src=url;
    				  
    			  if(imageExistsToControl == 0){ 
                                // faccio qualcosa
                              }
                               else
                                    // faccio altro
    poi ho creato la funzione che richiama
    codice:
    function imageexists(exists) 
    { 
      if(exists) 
        imageExistsToControl = 0;
      else 
        imageExistsToControl = 1;
    }
    ma non mi cambia il valore della variabile! come mai?

  7. #7
    Ho provato ancora in un altro modo:
    ho messo nella index questa immagine:

    codice:
    [img][/img]
    poi nel codice js (alla pressione di un button) ho messo:

    codice:
    	  var testImage=document.getElementById("testImage");
    	  testImage.src=ImageUrl;
    
    	  alert('val vale'+val);
    e ho creato le due funzioni:

    codice:
    function ValueTwo()
    {
    	val = 2;
    }
    function ValueOne()
    {
    	val = 1;
    }
    il comportamento di questo codice è il seguente:
    - al primo click del button non succede nulla
    - al secondo click appare l'alert col valore esatto
    - se io mando un altro link che deve generare un valore diverso al primo click mi da il valore precedentemente estratto
    - al secondo click esce il valore esatto

    come devo fare per ovviare questo problema? sono due giorni che sto impazzendo con questa cosa..

  8. #8
    Ho modificato il codice mettendo:

    testImage.src=ImageUrl;
    var grandezza = testImage.width;
    alert('grandezza vale'+grandezza);
    alert('val vale'+val);

    con gli alert funziona tutto benissimo ma togliendoli fa lo stesso identico problema di prima...

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Prendi il fiato e rispiega tutto dall'inizio: con tutti questi tentativi esagitati non si capisce cosa vuoi dimostrare e a cosa ti serve il dato che ricaveresti.

    Ovvero: spiega le esigenze, non i tentativi fatti.
    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

  10. #10
    Scusa ma le stavo tentando proprio tutte ma senza successo.. Io avrei semplicemente bisogno di una cosa:
    Ho un form dove in una textbox permetto di inserire il link ad una immagine remota..
    Al click di un button mi si richiama una funzione che mi esegue diversi controlli sul link inserito(se ci sono spazi,caratteri nn consentiti,estensione del file presente e corretta ecc) e per ultimo mi controlla se il link all immagine esiste veramente o no. A quel punto se anche il link esiste metto in un array la textbox ed eseguo alcune cose altrimenti non mette nulla nell array e mi mette un messaggio di errore in un div.. Il controllo su cui mi sono bloccato è proprio sulla verifica di questo url! Non riesco a ricevere in ritorno una variabile che mi fa capire che esiste o no..

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.