스트리밍서버에 ftp 접송 개념 정보
스트리밍서버에 ftp 접송 개념본문
요즘 동영상 관련되서 ㅡ,,ㅡ .
** 그누보드 게시판을 이용, 동영상미디어 파일을 스트리밍서버에 업로드하고 자동 리턴값을 반환하는원리
1. write.skin.php 에서 ..
//수정이 아닌경우만 랜덤 아이디값 생성
if($w !== "u"){
if($randumid == ""){
$randumid = time();
$randumid = substr("$randumid$randumid", 1, 16);
}
}
else{
$RanID = $write[wr_5]; // 수정 변경인 경우 기존의 랜덤값을 유지 한다.
}
?>
if($w !== "u"){
if($randumid == ""){
$randumid = time();
$randumid = substr("$randumid$randumid", 1, 16);
}
}
else{
$RanID = $write[wr_5]; // 수정 변경인 경우 기존의 랜덤값을 유지 한다.
}
?>
<form enctype="multipart/form-data" action="result.php" method="post">
<!---------ucc--------->
<input type=hidden name="randumid" value="<?=$randumid?>">
<!--------업로드고유값--->
<input type=hidden name="connect_id" value="20070606">
<!---------ucc--------->
<input type=hidden name="randumid" value="<?=$randumid?>">
<!--------업로드고유값--->
<input type=hidden name="connect_id" value="20070606">
<input type=file name="userfile" >
<input type="submit" value="업로드">
</form>
-----------------------------------------------------
2. 스트리밍서버값에서 처리할 내용 (기본적사항들)
<?
//파일의 기본값정보
$upfile_name = $_FILES['userfile']['name']; //업로드 실재이름
$upfile_tmp = $_FILES['userfile']['tmp_name']; //임시저장값경로
$upfile_size = $_FILES['userfile'][size]; //파일용량
$randumid = $_POST['randumid']; //무작의 생성 랜덤값
$upfile_name = $_FILES['userfile']['name']; //업로드 실재이름
$upfile_tmp = $_FILES['userfile']['tmp_name']; //임시저장값경로
$upfile_size = $_FILES['userfile'][size]; //파일용량
$randumid = $_POST['randumid']; //무작의 생성 랜덤값
//접속 고유번호, 1차 검증
$connect_id = $_POST['connect_id'];
//고유값을 여러군데 확장할경우 아래부분을 수정하시면 됩니다.
if($connect_id !== '20070606'){
die("허용되지 않은 번호입니다. 관리자에게 문의하세요"); //접속실패시
}
if($connect_id !== '20070606'){
die("허용되지 않은 번호입니다. 관리자에게 문의하세요"); //접속실패시
}
//생성된 랜덤값을 되돌려줄경로, 여러군데서 사용시에는 아래를 db data 처리하시면 됩니다
if($connect_id == '20070606'){
$return_url = "http://www.fla013.cafe79.net/ucc_pass.php";
}
if($connect_id == '20070606'){
$return_url = "http://www.fla013.cafe79.net/ucc_pass.php";
}
$file = $_FILES['userfile']['tmp_name']; //업로드시킬 임시경로
$fp = fopen($file, 'r');
####################기본적 수정할 내용########################
//자신의 계정에 맞는 ftp 경로
$ftp_server = ""; //접속ip 주소
$ftp_user_name = ""; //접속 id
$ftp_user_pass = ""; //접속 pw
$server_port = 21; //접속 prot
$ftp_server = ""; //접속ip 주소
$ftp_user_name = ""; //접속 id
$ftp_user_pass = ""; //접속 pw
$server_port = 21; //접속 prot
//스트리밍 서버의 저장경로 지정
$server_dir = "/exschool/file_upload"; // 자신의 환경에 맞게 수정하세요.
$server_dir = "/exschool/file_upload"; // 자신의 환경에 맞게 수정하세요.
#################################################################
//원결연결시도
$connet_ftp = ftp_connect($ftp_server, $server_port);
if(!$connet_ftp)
die("$ftp_server 접속에 실패하였습니다"); //접속실패시
//ftp 로그인 시도
$connet_login = ftp_login($connet_ftp, $ftp_user_name, $ftp_user_pass);
if(!$connet_login)
die(" $ftp_user_name 접속정보가 일치하지 않습니다.");
ftp_chdir($connet_ftp, $server_dir);
//파일을 업로드 한다. 파일명을 랜덤값으로 처리 저장하므로 중복값이 발생되지 않음
$ftp_result = ftp_put($connet_ftp, $randumid, $_FILES['userfile']['tmp_name'], FTP_BINARY);
$ftp_result = ftp_put($connet_ftp, $randumid, $_FILES['userfile']['tmp_name'], FTP_BINARY);
//업로드가 성공적이라면 리턴값을 보냄
if($ftp_result){?>
<form enctype="multipart/form-data" action="<?=$return_url?>" method="post">
<!---------결과값이 성공한경우--------->
<input type=hidden name="pass_ok" value="123456789">
<!--------업로드고유값--->
<input type=hidden name="home_url" value="<?=$return_url?>">
<input type="submit" value="업로드">
</form>
<?}
else{
echo '실패';
}
else{
echo '실패';
}
//FTP를 닫는다
ftp_quit($connet_ftp);
ftp_quit($connet_ftp);
?>
추천
3
3
댓글 5개
오호~ 현재 이 원리는 동영상 파일을 그누보드가 설치된 서버와 다른 스트리밍 서버에 올리는 것인가요?
네. 다른스트리밍서버에 파일을 올리고 리턴값으로 동영상을 구현되는...원리만(ㅠ) ,, 아직 대용량에대한 버그가 있어서요 ㅠ
웹서버와 DB서버 두가지를 따로 호스팅 받는 곳에서는 않되겠군요 ㅠㅠ 서버간 FTP가 막혀있더라구요
잼난거네요..
문의 드릴려고 했던 기능 이네요~