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