PHP:无法下载文件("404 Not Found"消息)



我在一个客户的网站上工作,我没有写代码。我在下载文件时遇到了麻烦。

它是关于用户可以下载课程文件的子域。网站文件包含在"courses"文件夹中(在根目录下)。

  • 显示可下载课程文件的文件包含在"课程/displayfiles.php"。
  • 可下载文件包含在"courses/downloadfolder"文件夹中。在这个文件夹中,每个用户都有自己的

displayfiles.php:以下代码成功显示登录用户可以下载的所有文件:

  $path = "downloadfolder/" . $_SESSION['userId'] . "/";
  $files = array();
  $output = @opendir($path) or die("$path could not be found");
  while ($file = readdir($output)) {
    if (($file != "..") and ($file != ".")) {
      array_push($files, $file);
    }
  }
  closedir($output);
  sort($files);
  foreach ($files as $file) {
    echo '<a class="imtext" href="downloadfolder/' . $_SESSION['userId'] . '/' . $file . '/">' . $file . '</a><br/>';
  }

那么这段代码有什么问题呢:当用户单击一个文件时,我得到一个"404 not Found"消息,表示该文件没有找到。这怎么可能呢?

为什么显示文件完全工作正常,但在同一时间我得到一个404错误时,点击一个文件?文件路径($path)是否正确?为了解决这个问题,我还需要做哪些进一步的调查?

* UPDATE *

我决定修改文件循环如下(改变href):

foreach ($files as $file) {
            echo '<a class="imtext" href="http://'.$_SERVER['HTTP_HOST']. '/downloadfolder/' . $_SESSION['courseId'] . '/' . $file . '/">' . $file . '</a><br/>';
      }

仍然,当我点击一个文件,我得到一个404 Not Found错误。这怎么可能呢?

你必须看看你的网页在哪里,php文件生成列表的位置和文件在哪里。

生成的链接是相对于生成该链接的php文件的,它可能与浏览器中的URL不对应。我会尝试使这个链接相对于web浏览器(注意前面的斜杠!)

echo '<a class="imtext" href="/courses/downloadfolder/' . $_SESSION['userId'] . '/' . $file . '/">' . $file . '</a><br/>';

如果猜测的解决方案不工作,请提供当前的网页URL,其中这个链接产生和一个产生的链接,所以我们可以帮助你更好。

相关内容

  • 没有找到相关文章

最新更新