我希望制作一个可以下载的PDF文件,但无法通过直接访问URL进行下载。
链接应该长成这样。
链接应该长成这样。
<a href="getFile.php?file=myfile.pdf" >Myfile</a>
而这就是getFile.php
<?php
$file=$_GET['file'];
// Check if file really exists:
$files = array_diff(scandir('/www/secretPlace/'), array('.', '..'));
$show = (in_array($file,$files)) ? true : false;
if(!$show) exit();
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="' . $file . '"');
readfile( '/www/secretPlace/' . $file);
只要PDF文件名不包含 &
符号,这个操作就可以正常工作。如果尝试使用
<a href="getFile.php?file=myfile & other stuff.pdf" >My Special File</a>
我可以下载带有文件名的文件,但无法使用pdf阅读器打开。所有程序都告诉我文件已损坏。如何使用readfile打开带有&
符号的pdf文件?
foreach
循环,只需使用in_array()
进行检查即可。 - itzmukeshy7