0

PHP の readfile() 関数を使用して、flv ビデオをフラッシュ プレーヤーにダウンロードしようとしています。これを使用すると、ファイルの場所を隠すことができます。これらのコードを試しましたが、jw プレーヤーが機能しません。ファイルは個別にダウンロードできますが、プレーヤーでは機能しません。

<?php

$file = '/vid/myvideo.flv';
header('Content-Description: File Transfer');
header('Content-Type: video/x-flv');
header("Cache-Control: no-cache");
header('Content-Disposition: attachment; filename=myvideo.flv' );
header("Pragma: no-cache");
header('Content-length: '.filesize($file));

flush();
@readfile($file) or die("File not found.");
?>

.swf を転送するとファイルは機能しますが、ファイルのパスが表示されます。

readfile() 関数を使用して、flv ファイルをフラッシュ プレーヤーにダウンロードすることは可能ですか。

4

1 に答える 1

0

readfileを使用する代わりに、freadを使用してみてください。これが私が現在行っている方法です。私のシステムではjwplayerで動作します。このリンクを 参考にしました。

コード例を次に示します。

//create the header
header("Content-Type: video/x-flv");
header('Content-Length: ' . filesize($file));
//open the file
$fh = fopen($file, "rb");
ob_end_clean();
//start sending the file
while (!feof($fh)) {
    print(fread($fh, 8192));
}
//the file has been completely sent. close the file.
fclose($fh);

?>

次に、jwplayer を作成するときのコードを次に示します。

$(document).ready(function(){
     jwplayer("mediaplayer").setup({
          flashplayer: "player.swf", 
          file: "/getFlv.php", //for this example, getFlv.php is located at www.domain.com/getFlv.php
          provider:'http'
     });
 });
于 2012-08-29T17:13:50.823 に答える