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

有帮助吗?

解决方案

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

或者你可以尝试从Flash中调用一个PHP脚本来执行你所描述的内容,这可能会返回一个简单的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。 COM / eladelrom / eladlib /斑点/主/ 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