【发布时间】:2021-11-19 07:01:12
【问题描述】:
我正在尝试使用代码从存储为 blob 数据类型的数据库中下载 pdf 文件,现在我只能以.php 而非.pdf 的形式查看该文件。
if(isset($_POST['submit'])){
$docno = $_POST['docno'];
$admno = $_POST['admno'];
$sql = "SELECT * FROM bonafide_cert WHERE DocumentNumber=:docno AND AdmssnNo=:admno";
$query = $dbh->prepare($sql);
$query->bindParam(':admno',$admno,PDO::PARAM_STR);
$query->bindParam(':docno',$docno,PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
if($query->rowCount() > 0)
{
foreach($results as $result)
{
header('Content-Type:'.$result->mime);
echo $result->pdf_file;
}
}
}
$result->mime 包含文件的数据类型为application/pdf。
$result->pdf_file 包含 PDF 文件本身为 BLOB。
在执行 php 代码时,我可以看到我的 pdf 文件,但该文件位于 .php 扩展名中,浏览器在其 PDF 查看器中显示该文件,但当我尝试下载时,它仍然尝试保存文件为.php。如何将文件下载为.pdf - 现在我每次都必须手动保存为 PDF。
【问题讨论】:
-
你是不是让用户一个一个循环下载附件?
-
每个权利都不需要吗?猜猜这没有必要。
-
这取决于要求。如果有多个文件要发送给用户,您可以制作一个 zip 并将所有这些文件添加到其中并让用户下载该 zip。