使用Flex 3检查远程文件是否存在
-
05-07-2019 - |
题
在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);
});
不隶属于 StackOverflow