如何读取保存在mysql中的pdf文件?

时间:2018-03-15 07:26:56

标签: php mysql

我已成功将pdf文件上传到数据库,但现在当我尝试阅读文件时,我遇到了“点击链接时无法加载PDF”的问题。

<a href="pdf.php<?php echo '?PDF='.$PDF;?> " target="_blank" ></i> View Attachment</a>
$PDF = $_GET['PDF'];
$file = './upload/PDF'.$PDF;
header('Content-type: application/pdf');
header('Content-Description: inline; filename="' .$file. '"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
@readfile($file);

1 个答案:

答案 0 :(得分:0)

所以我看到一些你不应该做的事情。首先,您不应该在从文件系统加载内容的字符串中使用未经过滤的GET变量。所以先过滤它们。我建议阅读安全文档。

https://secure.php.net/manual/en/security.php

接下来我认为你忘记了字符串中的/

$file = './upload/PDF/'.$PDF;

您应该将其带到子文件夹以便更好地理解。

最后一件事,如果你有一个文件并且你试图返回它们,你必须将它们作为流返回。像这样:

$data = file_get_contents("./upload/PDF/yourname.pdf");
header("Content-type: application/octet-stream");
header("Content-disposition: attachment;filename=nameofyour.pdf");
echo $data;

然后您可以退回它们,您的浏览器可以打开它们。并且您不在帖子中使用数据库。您只能尝试打开附件。因此,设置一个非常简单的PDF文件链接并仅生成数据库中的URL会更容易。