2016-06-16 24 views
0

私は自分のウェブサイトをmp3ファイルのみがストリーミングしているURLにリダイレクトしています。そのファイルをローカルのコンピュータにダウンロードします。 どうすればいいですか?リモートURLからmp3ファイルをダウンロードするには?

私はすでにgoogleとstacksoverflowを検索していますが、解決策が役に立たなかった 私の特定の問題の解決策が見つかりませんでした。

+0

あなたは私たちのウェブサイトを伝えることができますか? –

+0

@Flame_Phoenixそこに行く:*** https://s3-us-west-2.amazonaws.com/soundclouduploads/APS+-+Challa+mix.mp3*** –

+0

答えはhttp:// stackoverflowを助けるかもしれない。 com/questions/31466166/force-download-mp3-with-php – atoms

答えて

5

CURLをダウンロードすると、file_get_contentsを使用してサーバーにファイルを保存したり、いくつかのヘッダーを使用してファイルを強制的にダウンロードしたりすることができます。

$ch = curl_init('http://url-to-file.com/audio.mp3'); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_NOBODY, 0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 5); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); 
$output = curl_exec($ch); 
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 
if ($status == 200) { 
    file_put_contents(dirname(__FILE__) . '/audio.mp3', $output); 
} 

ブラウザのダウンロード:

$ch = curl_init('http://url-to-file.com/audio.mp3'); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_NOBODY, 0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 5); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); 
$output = curl_exec($ch); 
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 
if ($status == 200) { 
    header("Content-type: application/octet-stream"); 
    header("Content-Disposition: attachment; filename=audio.mp3"); 
    echo $output; 
    die(); 
} 
+0

私はこのリンクを試しました。http://stackoverflow.com/questions/21707080/download-files-from-external-url-and-pass-the-file -to-user-directly-without-sa –

+3

@WasiqShahrukh HTTPS URLであるため、ホスト/ピアを確認する必要があります。 –

+0

@Bicknellありがとう:)幸せなコーディング... –

関連する問題