2010년 11월 23일 화요일

플래시 동적 삽입 Flash import

그냥 그렇게 하는 거였지… 하면 나중에 잊어버릴 듯 하여 정리 해본다.

사용자의 요청,정보에 따라서 고정적인 swf가 아닌 상황마다 다르게 swf를 로드하고
파라미터를 추가 하는 등의 작업에 사용 되는 방식이다.

리눅스,Php환경에서 테스트
swfURL.php 는 실제 swf url을 헤더 변수로 담아 리턴 해주는 파일 이고
swfFILE.php 는 swf파일을 내려받기 형태로 스트림 해준다.

케이스
  1. 임베드되는 swf가 a.swf 일수도 b.swf 일수도 있는 상황
  2. a.swf?param=값 : 파라미터의 값이 외부(접속URL) 또는 DB의 값에 따라 다르게 처리 되어야 하는 경우
  3. html코드상에 swf주소를 노출 시키고 싶지 않을 경우
  4. 서비스중 swf 파일명이 빈번히 바뀌는 경우

활용 사례
  1. 유투브 :

    해당 URL접근시 서버의 리다이렉트 옵션을 활용하여 swf를 노출(.htaccess)


    해당 swf 파일을 내려 줌

player.html (swf 임베드)
    
    

swfURL.php (동적으로 URL을 구성하는 방식 파라미터를 추가해서 넘겨줌)
Header("Location:http://fe7270.ffcomputing.com/test/param.swf?param=123") ;
?>

swfFILE.php (3번 케이스에 해당 하는 방식 파라미터 없이 swf를 내려줌)
    if(!$file)
    {
        $file = "param.swf";
    }
    $dnfile = $file; //실제 파일명 또는 경로
    header("Content-Type: application/x-shockwave-flash");
    Header("Content-Length: ".(string)(filesize("$file")));
    //다운로드를 할지 html에 보여줄지 결정해주는 헤더
    //Header("Content-Disposition: attachment; filename=$dnfile");

    if (is_file("$file")) {
    $fp = fopen("$file", "rb");
    if (!fpassthru($fp))
        fclose($fp);
    } else {
        echo "해당 파일이나 경로가 존재하지 않습니다.";
    }
?>

댓글 없음:

댓글 쓰기