サンプル ファイルをリモート サーバーにアップロードしました。画像、動画、音声の 3 種類のファイルです。
cURL
私は自分のローカルページからそれらにアクセスし、ダウンロードを強制しています。
問題は、画像は<img src="?image" />
機能しますが、オーディオおよびビデオ ファイルの埋め込みは機能しないことです。私はテスト目的で埋め込みコードを使用していますが、それらを埋め込むためのそのようなフレームワークで十分です。
ここに私のphpファイルtest.phpがあります
<?php
function download($url)
{
set_time_limit(0);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$r = curl_exec($ch);
curl_close($ch);
header('Expires: 0'); // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header('Cache-Control: private', false);
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="' . basename($url) . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . strlen($r)); // provide file size
header('Connection: close');
echo $r;
exit;
}
if (isset($_GET['image']))
{
$file = 'https://googledrive.com/host/0B_3oJnpnNoF9UjlkVUwtWE5CY0U/city.jpg';
download($file);
}
if (isset($_GET['music']))
{
$file = 'https://googledrive.com/host/0B_3oJnpnNoF9UjlkVUwtWE5CY0U/horse.mp3';
download($file);
}
if (isset($_GET['video']))
{
$file = 'https://googledrive.com/host/0B_3oJnpnNoF9UjlkVUwtWE5CY0U/mov_bbb.mp4';
download($file);
}
?>
<img src="http://localhost/test.php?image" />
<br />
<audio controls height="100" width="100">
<source src="http://localhost/test.php?music" type="audio/mpeg">
<embed height="50" width="100" src="http://localhost/test.php?music">
</audio>
<br />
<video width="320" height="240" controls>
<source src="http://localhost/test.php?video" type="video/mp4">
<object data="http://localhost/test.php?video" width="320" height="240">
</object>
</video>
ただし、リンクに移動するhttp://localhost/test.php?music
か、http://localhost/test.php?video
ダウンロードが開始される場合、これらは作業ファイルであることを意味します (リンクはダウンしていません)。
私の問題は、この方法でオーディオ ファイルとビデオ ファイルをストリーミングできないことです。このコードを修正する必要があります。
ありがとう。