php - 文件目录和下载文件 URL 错误
问题描述
我正在使用下面的代码来读取我保存在服务器上的文件夹中的文件。
<?php
if ($handle1 = opendir('../files/policies/fire')) {
while (false !== ($file1 = readdir($handle1))) {
if ($file1 != "." && $file1 != "..") {
$thelist1 .= '<li><a href="'.$file1.'" target="_blank">'.$file1.'</a></li>';
}
}
closedir($handle1);
}
?>
<h3>Fire Fighting Files:</h3>
<ul><?php echo $thelist1; ?></ul></h6>
代码按应有的方式读取目录中的文件。我遇到的问题是,一旦我单击它搜索的链接或尝试打开根目录中的文件
它不使用子目录打开文件,而是使用根目录。结构如下
/File
/policies
/FA
当我单击链接时,它会尝试查找如下文件
/files/OHS_EHSR-020%20Employee%20Health%20and%20Safety%20Rules.pdf
并且文件保存为
/files/policies/FA/OHS_EHSR-020%20Employee%20Health%20and%20Safety%20Rules.pdf
任何建议都会有所帮助。请注意我使用的代码也是从这个站点获取的
添加两个块的完整代码这就是为什么我不能在我的代码中将目录修复为静态的原因:
<div class="col-xl-5 col-md-5 col-12">
<div class="box box-body">
<h6 class="text-uppercase">
<?php
if ($handle = opendir('../files/policies/FA')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$thelist .= '<li><a href="'.$file.'" target="_blank">'.$file.'</a></li>';
}
}
closedir($handle);
}
?>
<h3>First Aid Files:</h3>
<ul><?php echo $thelist; ?></ul></h6>
</div>
</div>
<!-- /.col -->
<div class="col-xl-5 col-md-5 col-12">
<div class="box box-body">
<h6 class="text-uppercase">
<?php
if ($handle1 = opendir('../files/policies/fire')) {
while (false !== ($file1 = readdir($handle1))) {
if ($file1 != "." && $file1 != "..") {
$thelist1 .= '<li><a href="'.$file1.'" target="_blank">'.$file1.'</a></li>';
}
}
closedir($handle1);
}
?>
<h3>Fire Fighting Files:</h3>
<ul><?php echo $thelist1; ?></ul></h6>
</div>
</div>
解决方案
readdir
返回相对路径不是绝对的,因此您需要添加/files/policies
到$file
变量并在链接中使用它
更新:
$dir = '/files/policies/fire';
if ($handle1 = opendir('..' . $dir)) {
while (FALSE !== ($file1 = readdir($handle1))) {
if ($file1 != "." && $file1 != "..") {
$filepath = $dir . DIRECTORY_SEPARATOR . $file1;
$thelist1 .= '<li><a href="' . $filepath . '" target="_blank">' . $file1 . '</a></li>';
}
}
closedir($handle1);
}
这应该适合你
推荐阅读
- python-3.x - 没有json的谷歌cloude认证
- shinyproxy - shinyproxy 无法使用默认用户和密码登录
- android - 在 Flutter FireBase 谷歌签名中,如何为我的给定代码维护持久性签名
- python - 如果键之一是或字典中的“0”,如何获取键
- java - How to test & parse brackets from a String?
- autohotkey - 何时在 AutoHotKey 中使用 % 或 %variable%?
- reactjs - 如何使用 react 和 typescript 使用 usecontext react 钩子创建可重用的 /common 对话框组件?
- php - 通过 php 和 sql 的交易系统
- linux - 使 strlcpy 在 linux 中可用
- c++ - 用于检查容器类中是否存在函数的 C++ 概念和隐式推导规则