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 文件名,如下所示:

下载PDF.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 回答