Php 下载pdf文件而不指定全名

Php 下载pdf文件而不指定全名,php,pdf,Php,Pdf,我有一个按钮,用户可以从那里下载特定的文件。每次我都必须处理文件名,并将其放入变量中,然后再将其交给readfile函数,以便将其提供给用户。但是,在许多情况下,文件名相当长,可能会随着时间的推移而改变,因此将来可能会出现错误。因此,我想知道是否可以简单地传递像/filedirectory/*.pdf这样的内容,或者只指定名称的一部分,其余部分可以是任何内容,然后将其传递到readfile以下载pdf,如下面的示例所示 if(isset($_POST["submit"])) {

我有一个按钮,用户可以从那里下载特定的文件。每次我都必须处理文件名,并将其放入变量中,然后再将其交给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');   
}

您可以使用scandir()获取/filedirectory中的文件列表,并找出文件名。

您可以使用列出所有PDF文件,然后选择所需的名称并重新归档

范例

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

readfile()
需要精确的文件名,但您可以使用
glob()
scandir()
获取潜在匹配项的列表。您需要处理存在多个匹配项的情况。