3

CodeIgniterでファイルのダウンロードに問題があります。

コードは単独のphpファイルで完全に機能しますが、コードをCodeIgniterに入れると、ファイルは正常にダウンロードされますが、損傷がありました:(。

注:リモートサーバーからのビデオファイルを使用しています。

コード:

$file = fopen ($link, "r");
if (!$file) {
    echo "<p align='center' style='color:#FF0101;'>Unable to open remote file :(, Please try again in a few minutes.</p>";
}else{
    ob_clean();
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");

    header('Content-Disposition: attachment; filename=zxc.3gp');
    //header("Content-Transfer-Encoding: binary");
    //header("Content-Length: ".$video_size);


    while (!feof ($file)) {
        $line = fgets ($file, 1024);
        echo $line;
        ob_flush();
        flush();
    }
    fclose($file);
    die();
}

私は新しいCodeIgniterプロジェクトでこのコードを試しました:

public function index()
{
    $link = 'http://mamprogr.net.tc/tmp/1.3gp';
    $this->load->helper('download');
    force_download('1.3gp',$link);
}

しかし、機能していません:(

4

3 に答える 3

4

CodeIgniter のforce_download()ヘルパーを試して、役立つかどうかを確認してください

force_download($name, $data); 

アップデート

force_download() 関数の 2 番目のパラメータとして直接リンクを提供しようとしていることに気付きました - ただし、「データ」が必要です - 以下を参照してください -

$data = file_get_contents("/local/path/to//1.3gp"); // Read the file's contents
//or perhpas $data = fopen(......);
$name = '1.3gp';

force_download($name, $data); 
于 2012-08-07T16:50:55.163 に答える
0

あなたの解決策はダウンロードの問題を解決します。ただし、ファイルが再生されると、エラーが発生します。

WindowsMediaPlayerはファイルを再生できません。Playerは、ファイルタイプをサポートしていないか、ファイルの圧縮に使用されたコーデックをサポートしていない可能性があります。

QuickTimeとRealPlayerを試しましたが、それでもビデオの再生が拒否されます。

于 2012-08-26T12:27:22.893 に答える