1

PHPを使用して強制ダウンロードを統合しています。flv ファイルをダウンロードしてビデオ プレーヤーで開くと、エラーが表示されます。

$Filename = '/* file name */'; 
    header('Content-Description: File Transfer');
    header("Content-type: video/flv");
    header("Cache-Control: no-cache");
    header("Content-Transfer-Encoding: binary");
    header('Content-Disposition: attachment; filename=test.flv' );
    header("Pragma: no-cache");
    header('Content-length: '.filesize($Filename));
    $hFPi = fopen ("$Filename", "rb");
    while (!feof($hFPi))
    {
        $sBuf = fread ($hFPi, filesize($Filename) );
        echo $sBuf;
    } 
    fclose ($hFPi);

助けてください..

4

4 に答える 4

2
$Filename = '/* file name */'; 
$path = "../../upload/";
$file = $path.$filename;
savedata1();
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/flv");
header("Content-Transfer-Encoding: binary");
readfile($file);

これはあなたを助けるでしょう。あなたのコードで試してみると、あなたの答えが見つかります...

于 2012-10-11T07:04:43.723 に答える
2

このコードは、私の側からmp4、flv、mpegファイルをダウンロードするのにうまく機能しています。$file_name = ダウンロードしたビデオ ファイル名、$file_path = サーバー内の元のファイルのベース パス。

header('Pragma: public'); // required   
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file_name");
header("Content-Type: video/mpeg");
header("Content-Transfer-Encoding: binary");

header('Cache-Control: must-revalidate, post-check=0, pre-check=0', false);
header('Cache-Control: private', false); // required for certain browsers  

ob_clean();
flush();
readfile($file_path);
exit;
于 2012-11-29T05:31:22.497 に答える
0

これは、ファイルのダウンロードを強制するために私が行うことです(私にとっては、ZIPですが、どのファイルタイプでも機能するはずです)。私はおそらくあなたとは違う方法で私のデータベース情報を保存するので、あなたはそれを微調整しなければならないことを覚えておいてください。

header("Content Description: File Transfer");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must revalidate");
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=".basename(".".$filepath)."");
header("Content-Length: " . filesize(".".$filepath));
header("Content-Transfer-Encoding: binary");
ob_clean();
flush();
readfile(".".$filepath);
于 2012-10-11T06:44:13.153 に答える
0

試す

           $Filename = 'test.flv'; 
            header("Pragma: public");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Content-type: video/flv");

            header("Content-Disposition: attachment; filename=".basename($filename).";" );
            header("Content-Transfer-Encoding: binary");
            readfile("$Filename "); 
于 2012-10-11T06:23:55.200 に答える