搜索目录中的文件并创建下载链接

时间:2016-07-13 09:31:50

标签: php html

 <html>
    <body>
    <table>
    <form action="" method="GET">
    <tr><td>Please Enter your KCSE Index Number</td><td><input type="text" id="index_no" name="q" value=""></td></tr>
   <tr><td></td><td><input type="Submit" id="print"  value="Search"></td></tr>
    </form>
    </table>    
    </body>
    </html>

<?php
$dir = 'C:\wamp\www\test\admisssionletters'; 
$exclude = array('.','..','.htaccess'); 
$q = (isset($_GET['q']))? strtolower($_GET['q']) : ''; 
$textarea=$_GET['q'];
$res = opendir($dir); 
while(false!== ($file = readdir($res))) 
{ 
if(strpos(strtolower($file),$q)!== false &&!in_array($file,$exclude)) 

    { 
    echo "Click to download or Print your Adm Letter      <ahref='$dir/$file'>$file</a>"; 
    echo "<br>"; 
    } 
} 
closedir($res); 
?>

1。 下载链接无效

c:\wamp\www\test\admisssionletters/20400003066_2014.pdf

但是,如果文件名前面的斜杠更改为:

  c:\wamp\www\test\admisssionletters\20400003066_2014.pdf

它有效,我怎么能在代码中改变它?

2。 我还想将输入文本中输入的值限制为特定数字,我该如何实现?

1 个答案:

答案 0 :(得分:0)

您无法将磁盘上的位置用作超链接。如果您实际上在存储文件的计算机上,那么该位置才有意义。如果你在另一台计算机上,查看网站(远程,不要忘记),那么

'C:\wamp\www\test\admisssionletters\20400003066_2014.pdf';

表示用于查看站点的计算机的C驱动器,而不是托管站点的计算机。或者,如果你没有使用Windows PC,那就什么都没有了!

超链接的格式为http://hostname/resource,并指向您的网络服务器,然后决定如何处理它们。它可能指向磁盘上的真实文件,也可能不指向(如果您使用框架或其他东西来解释URL)。在你的情况下,我猜C:\ wamp \ www可能是你的网络服务器托管文件的根文件夹。我们还假设,例如,您的计算机的主机名是“mycomputer”。因此,您需要在网站上显示的C:\ wamp \ www \ test \ admisssionletters \ 20400003066_2014.pdf链接

http://mycomputer/test/admisssionletters/20400003066_2014.pdf