猿问

PHP 和 HTML 制作漂亮的交互式文件显示页面

我找到了一个很好的演示代码,我可以用它来完成我正在尝试做的事情。但是最终产品相当丑陋,并且不允许我查看文件。就“不错”的部分而言,我有一种感觉,我应该将其视为更面向 jquery 的东西?


当我点击显示文件的链接时,我收到一个 url not found 错误。文件路径不对...


这是不正确的,脚本当前尝试导航到的内容:


http://server/var/www/html/reports/1/Doe_John/2019-04-01/Run_2_Report.pdf

这是正确的,可以在浏览器中显示文件:


http://server/reports/1/Doe_John/2019-04-01/Run_2_Report.pdf

是否有一种直接的方法可以“减去”导致问题的额外文件路径部分?我必须添加 {$_SERVER['DOCUMENT_ROOT']} 部分才能找到文件,但这似乎是现在导致问题的原因。


我还想按日期对文件进行排序,但这样做不正确。日期按月份的字母顺序排序。这可以仅用 HTML 来完成,还是我应该再次查看 Jquery 之类的东西?


PHP 在结构中显示所有 pdf 文件:


<?PHP

  // Original PHP code by Chirp Internet: www.chirp.com.au

  // Please acknowledge use of this code by including this header.


  //Test User Vars

  $region = "1";

  $first_name = "John";

  $last_name = "Doe";


  function getFileList($dir, $recurse = FALSE)

  {

    // array to hold return value

    $retval = array();


    // add trailing slash if missing

    if(substr($dir, -1) != "/") $dir .= "/";


    // open pointer to directory and read list of files

    $d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");

    while(false !== ($entry = $d->read())) {

      // skip hidden files

      if($entry[0] == ".") continue;

      if(is_dir("$dir$entry")) {

        $retval[] = array(

          "name" => "$dir$entry/",

          "type" => filetype("$dir$entry"),

          "size" => 0,

          "lastmod" => filemtime("$dir$entry")

        );

        if($recurse && is_readable("{$dir}{$entry}/")) {

          $retval = array_merge($retval, getFileList("{$dir}{$entry}/", TRUE));

        }

      } elseif(is_readable("$dir$entry")) {

        $retval[] = array(

          "name" => "$dir$entry",

          "type" => mime_content_type("$dir$entry"),

          "size" => filesize("$dir$entry"),

          "lastmod" => filemtime("$dir$entry")

        );

      }

    }

    $d->close();


    return $retval;

  }

ITMISS
浏览 169回答 1
1回答

芜湖不芜

第二个链接有效,因为/var/www/html/可能是您服务器的 DocumentRoot,如果您使用的是 Apache,它是您应用程序的根目录。
随时随地看视频慕课网APP
我要回答