2012-05-16 8 views
0

서버에서 MP3 파일을 다운로드하는 코드를 만듭니다. 이 코드는 이전 서버에서는 작동하지만 새 서버에서는 작동하지 않습니다. 내가 잘PHP에서 파일을 다운로드 할 수 없습니다.

내가 HTTP 포스트 Methos의를 통해 다운로드 링크를 보내

www.example.com/download.php?dlink=http://www.example.com/을 다운로드하려고 할 때 0 바이트를 보여줍니다 원격 SERV에서 파일을 읽을 수있는 음악/sample.mp3 여기

당신은 DLINK 매개 변수에 절대 URL을 통과하지 않아야

+0

여기서 $ file은 무엇입니까? readfile ($ file)? – Venu

+0

$ file = $ _REQUEST [ 'dlink']; 나는 지금이 라인을 놓쳤다. .. 질문을 보아라. –

+0

당신은 다른 서버를 가져올 파일을 출력하려고하고 있습니까? 또는 해당 서버에있는 파일입니까? – Venu

답변

0

내가 사전에

ob_start(); 
    if(isset($_REQUEST['dlink'])) 
    { 
     $file = $_REQUEST['dlink']; 
     header('Content-Description: File Transfer'); 
     header('Content-Type: application/octet-stream'); 
     header('Content-Disposition: attachment; filename='.basename($file)); 
     header('Content-Transfer-Encoding: binary'); 
     header('Expires: 0'); 
     header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
     header('Pragma: public'); 
     header('Content-Length: ' . filesize($file)); 
     ob_clean(); 
     flush(); 
     readfile($file); 
     exit; 
    } 
ob_flush(); 

감사를 사용하는 코드입니다 어.

사용

루트 디렉토리에있는 실행 파일을 가정 www.example.com/download.php?dlink=music/sample.mp3이 URL입니다.

+0

고마워요.하지만 동일한 코드가 Absolute Url을 전달하여 다른 서버에서 작동하고 있습니다.이 이순신이 묻습니다. 아무튼 감사합니다. 선생님 –

+0

닫기 이 답을 수락하여 문제가 해결되면이 티켓 – Venu

관련 문제