2014-09-25 2 views
-1

오늘 저는 mp3 파일을 직접 다운로드하도록하는 PHP 스크립트를 만들고 싶습니다. 난에 배치됩니다 다운로드 할PHP 스크립트로 파일에 연결할 수 없습니다.

파일 폴더를 소리 나는 http://playall.pl/sounds/ThemadpixprojectBadChick.mp3

통해에 액세스 할 수 있습니다하지만 PHP 스크립트에 올 때 -이 파일이 서버에없는 것을 기능을 말한다 file_exists.

어떻게 해결할 수 있습니까? 파일을

if (file_exists($file)) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.basename($file_name)); 
    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; 

을 다운로드하고 file_exists($file)의 전체 경로를 필요로 $file 변수에 대한 파일 이름과 파일의 URL을

$file_name = ''.$sound['Sounds']['artist'].' - '.$sound['Sounds']['title'].'.mp3'; 

$file_name = preg_replace('/\s+/', '_', $file_name); 

$file = 'http://playall.pl'.$this->webroot.'sounds/'.$sound['Sounds']['src_url']; 
+0

브라우저를 리디렉션하지 않는 이유는 무엇입니까? –

+0

버튼 클릭시 강제로이 파일을 다운로드하려고하기 때문에. – GamaPL

+0

그리고 CakePHP 프레임 워크를 사용하여 메신저를 추가하십시오. – GamaPL

답변

0

를 얻기 위해 사용

코드 임. 그리고 웹 사이트를위한 URL이 아닌 파일 시스템상의 경로 여야합니다. 나머지는 거기에서 상대 할 필요가 있으므로,

$file = $_SERVER['DOCUMENT_ROOT'] . '/app/webroot/sounds/'; 

$_SERVER['DOCUMENT_ROOT'] 당신에게 당신의 htdocs에 폴더에 파일 시스템 경로를 제공합니다

그래서 당신은 뭔가를해야합니다.

0

확인. 문제는 매우 간단합니다. 나는 앞/뒤에있었습니다. 이제 올바르게 작동합니다. 도움을 주셔서 감사합니다!

관련 문제