Проверьте наличие удаленного файла с Flex 3 - PullRequest
2 голосов
/ 30 июля 2009

В Flex 3 / AS 3, что было бы хорошим способом проверить, существует ли удаленный файл? Я имею в виду способы PHP, где вы пытаетесь «открыть» удаленный путь (например, «http://example.com/somefile.exe"),» и посмотреть, работает ли он. просто хочу узнать, есть ли файл (и доступен ли он).

Ответы [ 3 ]

2 голосов
/ 15 февраля 2011

Это лучший код, который я нашел для работы

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");
    }
}
1 голос
/ 03 ноября 2009

Я разработал служебный класс, который проверяет, существует файл или нет. Вот код: https://github.com/eladelrom/eladlib/blob/master/EladLibFlex/src/com/elad/framework/utils/FileExistsUtil.as

И реализация выглядит так:

var fileExists:FileExistsUtil = new FileExistsUtil();
fileExists.checkFile("file.jpg", 
function(eventType:String):void
{
 trace(eventType);
}, 
function(errorType:String, text:String):void
{
 trace(errorType+": "+text);
});
0 голосов
/ 30 июля 2009

Возможно, вам потребуется попытаться загрузить файл. Если вы получили IOError, файл не существует (или ваш путь неверен). Если он начинает загружаться, вызывая событие прогресса, то он существует. Затем вы можете отменить оставшуюся часть загрузки.

В качестве альтернативы вы можете попробовать вызвать PHP-скрипт из Flash, который делает то, что вы описали, это может вернуть простое значение true / false.

...