Question

Sous Flex 3 / AS 3, quel serait un bon moyen de vérifier l’existence d’un fichier distant? Je pense en PHP comment vous pourriez essayer "fopen". un chemin d'accès distant (comme " http://example.com/somefile.exe ), et voir si cela fonctionne ou pas. Je ne demande pas de télécharger tout le fichier, je veux juste savoir s'il est là (et accessible).

Était-ce utile?

La solution

Vous devrez probablement essayer de charger le fichier. Si vous obtenez une erreur IOError, le fichier n'existe pas (ou votre chemin est incorrect). Si le chargement commence, en déclenchant un événement progress, il existe. Vous pouvez ensuite annuler le reste du chargement.

Vous pouvez également essayer d'appeler un script PHP à partir de Flash qui reproduit ce que vous avez décrit. Cela pourrait renvoyer un simple vrai / faux.

Autres conseils

C’est le meilleur code que j’ai trouvé pour le travail

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");
    }
}

Il existe une classe d’utilitaire que j’ai développée et qui permet de vérifier si un fichier existe ou non. Voici le code: https: // github. com / eladelrom / eladlib / blob / master / EladLibFlex / src / com / elad / framework / utils / FileExistsUtil.as

Et sa mise en oeuvre ressemble à ceci:

var fileExists:FileExistsUtil = new FileExistsUtil();
fileExists.checkFile("file.jpg", 
function(eventType:String):void
{
 trace(eventType);
}, 
function(errorType:String, text:String):void
{
 trace(errorType+": "+text);
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top