Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

Я разработал служебный класс, который проверяет, существует файл или нет. Вот код: https: // github. ком / eladelrom / eladlib / BLOB / Master / EladLibFlex / SRC / COM / Elad / рамки / 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);
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top