我正在尝试使用以下代码显示本地存储在浏览器中的pdf文件:
<p><a href=<?php
$sql = "select title from tasks where taskPK='".$_SESSION['task']."'";
$res = $db->query($sql);
if (!$res) {
throw new Exception("Database Error [{$db->errno}] {$db->error}");
}
while($row = $res->fetch_assoc()){
$rad= $row['title'];
echo ("files/".$id."/".$rad.".pdf"); }?> > See PDF </a> </p>
这应该进入正确的文件夹并获取文件然后显示它。但我的问题是,如果文件的名称有一个空格,例如“peter pan.pdf” 然后它将无法正常工作。 URL应该是localhost / upload / files / 9 / Peter%20Pan.pdf 但这不会发生。 URL是localhost / upload / filer / 9 / Peter 当空间命中且文件未显示时,它会停止。
但如果文件名与a连接 - 就像这样:“Peter-Pan.pdf”它可以工作。 然后URL变为localhost / upload / filer / 9 / Peter-Pan.pdf PDF显示。
问题是什么?对不起,如果它有点乱。
$ id是URL中的用户
问题应该在这里,但我不能说出来:
echo ("files/".$id."/".$rad.".pdf"); }?> > See PDF </a> </p>
答案 0 :(得分:1)
空白区域是非法的URL字符。使用urlencode清除$rad
。
$rad = urlencode($row['title']);
此致
编辑:
$rad = rawurlencode($row['title']);
这是对rawurlencode
的引用