-4

プロジェクト サイトでのダウンロードが開始されるたびに、スクリプトのダウンロードの問題に直面しています。サイトにあるすべてのリンクがまったく機能しません。ファイルが完全にダウンロードされると、リンクが機能し始めます。

ファイルをダウンロードする方法を設定headerして使用しています。ファイルのダウンロードは、サイトでのユーザーの操作と同時に機能する必要があります。次のコードを使用していますreadfilephp

    header("Pragma: public");
    header("Expires: 0");
    header("Content-Type: application/$ctype");
    header("Content-Description: File Transfer");
    header("Content-Disposition: inline; filename=$docName");
    header('Content-Length: '. filesize($filename));
    header("Accept Ranges: bytes"); 
    header("Content-Transfer-Encoding: binary");        
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");            
    readfile("$filename");

ここfilenameにファイルの名前とctypeファイルの種類があります。

これを解決するには?

誰かがこれに対する解決策を持っているかどうか教えてください。

4

1 に答える 1

0

適切なヘッダーが欠落していると推測しています。必要に応じてコンテンツ タイプを変更し、エンコーディングを転送してください。

$download は実際のファイル、つまり /var/www/download_images/1.jpg です。

$filesize はファイルのサイズです

$filename は、ユーザーに提示したい任意のファイル名、つまり homer_simpson.jpg にすることができます

<?php
    if (file_exists($download))
    {
        header("Cache-Control: must-revalidate");
        header("Expires: 0");
        header("Pragma: public");
        header("Content-Description: File Transfer");
        header("Content-Length: ". $filesize .";");
        header("Content-Disposition: attachment; filename=" . $filename);
        header("Content-Type: application/octet-stream; ");
        header("Content-Transfer-Encoding: binary");
        ob_clean();
        flush();

        readfile($download);
    }
?>
于 2013-06-18T08:54:22.767 に答える