그냥 그렇게 하는 거였지… 하면 나중에 잊어버릴 듯 하여 정리 해본다.
사용자의 요청,정보에 따라서 고정적인 swf가 아닌 상황마다 다르게 swf를 로드하고
파라미터를 추가 하는 등의 작업에 사용 되는 방식이다.
리눅스,Php환경에서 테스트
swfURL.php 는 실제 swf url을 헤더 변수로 담아 리턴 해주는 파일 이고
swfFILE.php 는 swf파일을 내려받기 형태로 스트림 해준다.
케이스
- 임베드되는 swf가 a.swf 일수도 b.swf 일수도 있는 상황
- a.swf?param=값 : 파라미터의 값이 외부(접속URL) 또는 DB의 값에 따라 다르게 처리 되어야 하는 경우
- html코드상에 swf주소를 노출 시키고 싶지 않을 경우
- 서비스중 swf 파일명이 빈번히 바뀌는 경우
활용 사례
- 유투브 :
해당 URL접근시 서버의 리다이렉트 옵션을 활용하여 swf를 노출(.htaccess)
임베드된 swf src :http://www.youtube.com/v/_IlEqqGPJ08&showinfo=0&enablejsapi=1&et=OEgsToPDskI4HQ4ZPvlOat-VeICzBf6u&hl=ko&autoplay=1&fs=1
해당 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 "해당 파일이나 경로가 존재하지 않습니다.";
}
?>
댓글 없음:
댓글 쓰기