2017-07-28 10 views
1
$file_name = $_GET['title']; 
$file_url = $_GET['url'] . $file_name; 
header('Content-Type: video/octet-stream'); 
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"".$file_name."\""); 
readfile($file_url); 
exit; 

私はこのコードを使用して、自分のサイトのファイルを別のウェブサイトから取得しています。PHPのヘッダ()ユーザエージェントの変更

それは私のURLは次のようになります場合は動作します: -

https://www.example.com/video_download.php?title=video.mp4&url=http://googlevideo.com/video/download/223689/289048 

(例)

だから、それは私のサイトにhttp://www.googlevideo.com/video/play/221589からのビデオファイルをフェッチすることによってダウンロードを開始します。

しかし私の問題は、その人がPCを使用している場合にファイルにアクセスできることです。

header()を使用してユーザーエージェントを変更できますか? 可能ですか? ユーザエージェントをPCのユーザエージェントに変更すると、モバイルからダウンロードできるようになります!

答えて

0

申し訳ありませんが、ユーザーエージェントはreadfile()関数とは関係ありません。 Readfile()は生のファイル入力をあなたのブラウザに投げるだけです。例えば、実際のファイル名を公開することなく、PHPを使用してクライアントにイメージをレンダリングします。

実際、readfile()を使用してビデオをクライアントにレンダリングすることは可能ですが、HTML5ビデオタグを使用するとパフォーマンスが大幅に向上します。これにより、より優れたモバイルサポートも提供されます。

希望、これはあなたがあなたがstream_compy_to_stream

$video = fopen($file_url); 
$file = fopen('videos/' . $title . '.mp4', 'w'); 
stream_copy_to_stream($video, $file); //copy it to the file 
fclose($video); 
fclose($file); 

を使用することができ、

+0

別のコードを使用して同じコードを使用することはできますか?また、ユーザーエージェントも変更できます! –

0

を助け、私はユーチューブのビデオファイルをダウンロードするためのクラスを書きました。それはhereです。

関連する問題