不允许PHP加载本地资源
我不确定为什么会出现以下错误:不允许PHP加载本地资源,php,download,Php,Download,我不确定为什么会出现以下错误: Not allowed to load local resource: file:///D:/CargoDocsPDFs/0000024606//NAM3112358.pdf 我正在使用以下功能创建一个表,其中包含指向pdf文件的链接,用户只需单击即可下载: <?php function return401KDocs() { $dir = "D:/CargoDocsPDFs/0000024606/"; $ffs = scandir($dir); echo
Not allowed to load local resource: file:///D:/CargoDocsPDFs/0000024606//NAM3112358.pdf
我正在使用以下功能创建一个表,其中包含指向pdf文件的链接,用户只需单击即可下载:
<?php
function return401KDocs()
{
$dir = "D:/CargoDocsPDFs/0000024606/";
$ffs = scandir($dir);
echo "<table class='table table-bordered display nowrap'>";
echo "<thead>";
echo "<tr>
<th style='width:300px;'>File Name</th>
<th style='width:100px;'>Upload Date</th>
<th style='width:25px;'>File Size</th>
<th style='width:100px;'>Delete</th>
</tr>";
echo "</thead>";
echo "<tbody>";
foreach($ffs as $ff)
{
if($ff != '.' && $ff != '..' && preg_match('#(pdf|doc|docx|xls|xlsx|PDF)$#',$ff))
{
$filesize = filesize($dir . '/' . $ff);
echo "<tr><td><a download href='$dir/$ff'>$ff</a></td><td>" .
date('m.d.y - g:i A', filemtime($dir . '/' . $ff)) .
"</td><td>" . round(($filesize / 1024), 2) . " kb</td>
<td><a href='#' class='delete401KFile' data-file='".$ff."'>Delete</a></td></tr>";
}
}
echo "</tbody>";
echo "</table>";
}
?>
我做了一个回答,因为有几点我无法发表评论,所以请不要投反对票
您不应该从本地文件系统加载文件。您需要将其与应用程序一起托管,并从web服务器上加载
您将永远无法在客户端上直接显示存储文件夹(C或D驱动器)中的文件。浏览器唯一能真正做到的是:
实际上位于公用文件夹下面的内容
通过index.php(您的应用程序)调用的代码
因此,您需要将文件存储在(服务器的)公用文件夹中的某个位置
您可以通过此链接获得一些帮助:
也许是file:///D:/CargoDocsPDFs/0000024606//NAM3112358.pdf
。所以$filesize=filesize($dir.'/'.$ff)
应该是$filesize=filesize($dir.$ff)代码>@Hanswasink-运气不好,只是收到了同样的错误。我从不投任何人的反对票。如果我这样做了,我至少会解释为什么我否决了他们。关于你的回答,我们的网络文件确实在C:驱动器上,但是PDF文件需要上传并保存到D:驱动器中。你是说这是不可能的还是不明智的?这是不明智的,不应该这样做,因为你试图访问绝对路径&而且你实际上不能引用服务器驱动器,除非它的linux和你正在将驱动器安装到服务器上(这也需要一个完全不同的代码)在这种情况下,这并不是问题所在。另外,我也不明白为什么你想直接在驱动器中写入和读取文件,在web app中创建一个公用文件夹(如果使用xampp,项目的根文件夹将保留在htdocs中),并在那里存储PDF,为每个文件提供唯一的id,这样你就可以开始了