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