2009-07-30 4 views
2

Flex 3/AS 3에서 원격 파일이 있는지 확인하는 좋은 방법은 무엇입니까? 원격 경로 (예 : "http://example.com/somefile.exe")를 "fopen"하려고하는 PHP 방식으로 생각하고 작동하는지 확인하십시오. 나는 파일의 전부를 다운로드 할 것을 요구하지 않고있다, 나는 파일이 거기 (그리고 접근 가능한)인지 알고 싶다.Flex 3를 사용하여 원격 파일 존재 여부 확인

+0

찾을 최적의 코드 (즉, 위의 예에서 http 링크의 끝에있는 Windows exe - 매우 이상합니다). 대답에 따라 몇 가지 옵션이 있습니다. – Simon

+0

제 경우에는 예 http하지만 아니요, exe는 아닙니다. 아마 .mp4, .flv 등의 영화 파일이 될 것입니다. – Jonny

+0

나는이 오래된 질문을 보면서, 이것이 내가 오늘날 물어볼 것이 아닐 것이라고 말한다. http를 말할 때 웹을 통한 파일 존재는 물론 http 프로토콜에 의해 처리되어야합니다. 즉, 404 페이지가 있으면 페이지가 존재하지 않습니다. 그리고 서버 오류, 액세스 거부 등의 다른 응답을 받으면 가장 잘 맞는 것을 처리하십시오. – Jonny

답변

0

파일로드를 시도해야 할 수 있습니다. IOError가 발생하면 파일이 존재하지 않거나 경로가 잘못되었습니다. 로드가 시작되면 진행 이벤트가 트리거되어 존재합니다. 그런 다음 나머지로드를 취소 할 수 있습니다.

또는 플래시에서 설명하는 것을 수행하는 PHP 스크립트를 호출 해보십시오. 간단한 true/false를 반환 할 수 있습니다.

+0

파일이 존재하지 않으면 웹 서버가 404 페이지 또는 그와 비슷한 것을 반환합니다 (사실 내 경우 프론트 페이지 반환 된 URL ... 재 작성 등), 기술적으로 해당 페이지가 성공적으로 다운로드됩니다. 대안에 가까운 해결책을 찾으러 갈 것입니다. 파일이 존재하는지 여부에 관계없이 서버 측 (이 경우 PHP 사용)에서 확인하고 있습니다. 그리고 flashvars에 "파일 없음"매개 변수를 추가합니다 . 즉, 플래시 클라이언트 응용 프로그램에서 확인 작업이 실제로 수행되지는 않습니다. 나는 이것이 지금 나를 위해 충분하다고 생각한다. – Jonny

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

링크가 깨졌습니다 – Tom

+0

링크가 github의 프로젝트 위치를 가리 키도록 수정되었습니다. –

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"); 
    } 
} 
관련 문제