使用Flex 3检查远程文件是否存在

时间:2009-07-30 07:59:05

标签: actionscript-3 http flex3 stream

在Flex 3 / AS 3中,检查远程文件是否存在的好方法是什么? 我正在用PHP思考你试图“fopen”远程路径(如“http://example.com/somefile.exe”),看看它是否有效。我不是要求只下载所有文件,我只是想知道文件是否存在(并且可访问)。

3 个答案:

答案 0 :(得分:2)

这是我找到的最佳代码

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 :(得分:1)

我开发了一个实用程序类来处理文件是否存在的检查天气。这是代码: 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);
});

答案 2 :(得分:0)

您可能需要尝试加载该文件。如果出现IOError,则该文件不存在(或者您的路径错误)。如果它开始加载,则通过触发进度事件然后它就存在。然后,您可以取消剩余的加载。

或者你可以尝试从Flash中调用一个PHP脚本来执行你所描述的内容,这可能会返回一个简单的true / false。