我已成功将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);
答案 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会更容易。