Zend framework 使用zend framework下载多个pdf

Zend framework 使用zend framework下载多个pdf,zend-framework,pdf,Zend Framework,Pdf,为了让浏览者下载这样的pdf文件,我在我的网站上附加了一个pdf文件 $fullPath=“../public/pdffiles/foliopluserGuide(v3.0).pdf” html代码: baseUrl()。/DownloadPdf'?>“>下载手册 这段代码只包含一个文件路径,我有更多的pdf文件,每个文件都有不同的文件名和不同的按钮来处理下载事件。我如何才能做到这一点?。非常感谢!。=)您可以通过HTTP请求传递pdf文件名,如下所示: $pdfdir = "/pdffiles

为了让浏览者下载这样的pdf文件,我在我的网站上附加了一个pdf文件

$fullPath=“../public/pdffiles/foliopluserGuide(v3.0).pdf”

html代码:

baseUrl()。/DownloadPdf'?>“>下载手册


这段代码只包含一个文件路径,我有更多的pdf文件,每个文件都有不同的文件名和不同的按钮来处理下载事件。我如何才能做到这一点?。非常感谢!。=)

您可以通过HTTP请求传递pdf文件名,如下所示:

$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;
<a href=downloadpdf.php?filename=something.pdf>Something</a>
<a href=downloadpdf.php?filename=something2.pdf>Something2</a>
下载pdf.php?文件名=test1.pdf

然后在下载的PDF文件中有如下内容:

$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;
<a href=downloadpdf.php?filename=something.pdf>Something</a>
<a href=downloadpdf.php?filename=something2.pdf>Something2</a>
现在,您的代码是动态的,您可以下载任何带有以下链接的PDF:

$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;
<a href=downloadpdf.php?filename=something.pdf>Something</a>
<a href=downloadpdf.php?filename=something2.pdf>Something2</a>


等等。

$filepath变量可以是您想要的任何内容,请按PDF文件更改它。如果您希望用户在一个HTTP请求中下载多个PDF文件,则必须使用PHP zip库将其压缩到一个文件中。那么您到底想做什么呢?我希望按钮能够保存不同的PDF文件名,因为不应该有两个按钮相同的pdf文件。.我使用的代码只针对1个文件路径。@cfz这显然只是示例代码。实际应用程序应限制允许的文件名值,以便只能下载显式发布的文件。我尝试过,但不起作用。.当我单击按钮时,它只会将我重定向到一个空页面。您必须每两次检查一次整体代码看起来不错。我认为问题出在这行$pdfdir=“/pdffiles/folder/location/here”";..我所做的是添加包含我的pdf文件的文件夹的文件路径,但它不起作用。您必须相应地更改它,对于您自己的服务器和站点设置,您不能复制粘贴它。您必须为您的服务器修改它,这只是一个示例psuedo代码。