質問

Flex 3 / AS 3では、リモートファイルが存在するかどうかを確認する良い方法は何ですか? 私はあなたが" fopen"しようとするPHPの方法で考えています。リモートパス(" http://example.com/somefile.exe "など)、動作するかどうかを確認します。すべてのファイルをダウンロードするだけでなく、ファイルがそこにある(そしてアクセスできる)かどうかを知りたいだけです。

役に立ちましたか?

解決

おそらく、ファイルのロードを試行する必要があります。 IOErrorが発生した場合、ファイルは存在していません(またはパスが間違っています)。ロードを開始すると、progressイベントをトリガーして存在します。その後、ロードの残りをキャンセルできます。

代わりに、説明したことを実行する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。 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);
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top