Domanda

In Flex 3 / AS 3, quale sarebbe un buon modo per verificare se esiste un file remoto? Sto pensando in modi PHP in cui proveresti a "fopen" un percorso remoto (come " http://example.com/somefile.exe "), e vedere se funziona o no. Non sto chiedendo di scaricare solo tutto il file, voglio solo sapere se il file è lì (e accessibile).

È stato utile?

Soluzione

Probabilmente dovrai tentare di caricare il file. Se ricevi un IOError, il file non esiste (o il tuo percorso è sbagliato). Se inizia il caricamento, attivando un evento progress, allora esiste. Puoi quindi annullare il resto del caricamento.

In alternativa puoi provare a chiamare uno script PHP da Flash che fa quello che hai descritto, questo potrebbe restituire un semplice vero / falso.

Altri suggerimenti

Questo è il miglior codice che ho trovato per il lavoro

var urlStream:URLStream = new URLStream();
urlStream.addEventListener(Event.OPEN, streamHandler);
urlStream.addEventListener(IOErrorEvent.IO_ERROR, streamHandler);
urlStream.load(new URLRequest("SOME_FILE"));

function streamHandler(e:Event):void {
    urlStream.close();
    if(e.type == Event.OPEN){
        trace("FILE EXISTS");
    } else if(e.type == IOErrorEvent.IO_ERROR){
        trace("FILE DOES NOT EXIST");
    }
}

Esiste una classe di utilità che ho sviluppato che gestisce un tempo di controllo in cui un file esiste o meno. Ecco il codice: https: // github. com / eladelrom / eladlib / blob / master / EladLibFlex / src / com / Elad / quadro / utils / FileExistsUtil.as

E l'implementazione si presenta così:

var fileExists:FileExistsUtil = new FileExistsUtil();
fileExists.checkFile("file.jpg", 
function(eventType:String):void
{
 trace(eventType);
}, 
function(errorType:String, text:String):void
{
 trace(errorType+": "+text);
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top