Frage

In Flex 3 / AS 3, was wäre ein guter Weg, um zu überprüfen, ob eine Remote-Datei vorhanden ist? Ich denke, in PHP Möglichkeiten, wo Sie auf „fopen“ einen Remote-Pfad versuchen würde (wie „ http: // example.com/somefile.exe "), und sehen, ob es funktioniert oder nicht. Ich verlange nicht nur alle die Datei heruntergeladen haben, ich möchte nur wissen, ob die Datei dort (und zugänglich).

War es hilfreich?

Lösung

Sie würden wahrscheinlich die Datei, um versuchen müssen zu laden. Wenn Sie eine IOError erhalten, wird die Datei nicht existiert (oder Ihr Weg ist falsch). Wenn es Laden beginnt, indem ein Fortschritt Ereignistriggerung dann existiert es. Sie können dann den Rest des Ladens abzubrechen.

Alternativ könnte versuchen, ein PHP-Skript von Flash-Aufruf, der das tut, was Sie beschrieben haben, könnte dies eine einfache Rückkehr wahr / falsch.

Andere Tipps

Dies ist der beste Code, den ich für den Job gefunden

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

Es gibt eine Utility-Klasse I, dass ein Kontroll Wetter Griff entwickeln eine Datei vorhanden ist oder nicht. Hier ist der Code: https: // GitHub. com / eladelrom / eladlib / Blob / Master / EladLibFlex / src / com / elad / Rahmen / utils / FileExistsUtil.as

Und Implementierung sieht wie folgt aus:

var fileExists:FileExistsUtil = new FileExistsUtil();
fileExists.checkFile("file.jpg", 
function(eventType:String):void
{
 trace(eventType);
}, 
function(errorType:String, text:String):void
{
 trace(errorType+": "+text);
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top