0

視聴者がそのようなpdfファイルをダウンロードできるように、自分のサイトにpdfファイルを添付する際にこのコードを取得しました..

$fullPath = "../public/pdffiles/FolioPlusUserGuide(v3.0).pdf";

    if ($fd = fopen ($fullPath, "r")) {

        $fsize = filesize($fullPath);
        $path_parts = pathinfo($fullPath);
        $ext = strtolower($path_parts["extension"]);

        header("Content-type: application/pdf");
        header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");            
        header("Content-length: $fsize");
        header("Cache-control: private");

        while(!feof($fd)) {
            $buffer = fread($fd, 2048);
            echo $buffer;
        }
    }

    fclose ($fd);
    exit;

html コード:

baseUrl().'/DownloadPdf'?>">パンフレットのダウンロード

このコードは 1 つのファイル パスのみに対応しています。ダウンロード イベントを処理するために、それぞれに異なるファイル名と異なるボタンを持つ複数の pdf ファイルがあります。どうすればこれを達成できますか?..ありがとうございます!..=)

4

1 に答える 1

0

次のように、HTTP リクエストを介して PDF ファイル名を渡すことができます。

DownloadPDF.php?filename=test1.pdf

次に、 DownloadPDF ファイルに次のようなものがあります。

$pdfdir = "/pdffiles/folder/location/here";
$pdffilename = $_GET['filename'];
$fullPath = $pdfdir.$pdffilename;

if ($fd = fopen ($fullPath, "r")) {

        $fsize = filesize($fullPath);
        $path_parts = pathinfo($fullPath);
        $ext = strtolower($path_parts["extension"]);

        header("Content-type: application/pdf");
        header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");            
        header("Content-length: $fsize");
        header("Cache-control: private");

        while(!feof($fd)) {
            $buffer = fread($fd, 2048);
            echo $buffer;
        }
    }

    fclose ($fd);
    exit;

これでコードは動的になり、次のようなリンクを含む PDF をダウンロードできます。

<a href=downloadpdf.php?filename=something.pdf>Something</a>
<a href=downloadpdf.php?filename=something2.pdf>Something2</a>

于 2013-01-07T08:19:34.863 に答える