下载pdf文件而不指定整个名称

时间:2014-07-26 23:52:31

标签: php pdf

我有一个用户可以从中下载特定文件的按钮。每次我必须处理文件的名称并将其放入变量之后再将其提供给readfile函数以便将其提供给用户。但是,在许多情况下,文件名很长,可能会随着时间的推移而发生变化,因此将来可能会出现错误。所以我想知道是否可以简单地传递像/filedirectory/*.pdf这样的东西,或者只指定部分名称,其余可以是任何东西,然后将其传递给readfile以下载pdf,就像在下面的示例中那样?

   if(isset($_POST["submit"])) 
   {

// We'll be outputting a PDF
header('Content-type: application/pdf');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="download.pdf"');

// Whatever name the pdf has
readfile('./filedirectory/*.pdf');  


 #OR

 // File starts with 123..
readfile('./filedirectory/123*.pdf');   
}

2 个答案:

答案 0 :(得分:1)

您可以使用glob列出所有PDF文件,然后您可以选择您想要的名称并将其读取。

实施例

<?php
    foreach (glob("*.pdf") as $filename) {
        // Do something with the $filename
    }
?>

答案 1 :(得分:0)

您可以使用scandir()(http://php.net/manual/en/function.scandir.php)获取/ filedirectory中的文件列表,并找出文件名可能是什么。