代码之家  ›  专栏  ›  技术社区  ›  Don

用PHP控制对文件系统的访问

  •  2
  • Don  · 技术社区  · 14 年前

    Controlling Access for Trial Subscription

    既然这是一个新的问题,根据那里的建议,我想我应该开始一个新的职位。如果这应该是一个编辑,请让我知道未来。

    /上传/################.pdf

    再次感谢。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Fanis Hatzidakis    14 年前

    www.yoursite.ext/uploads/2395wrfhgt.pdf 自己下载或与他人共享链接。

    /var/www/site/htdocs/ 你把所有的pdf文件都上传到 /var/www/site/uploads/ . 您甚至不需要对文件名进行散列,而是可以保持它们的良好名称,以便于组织。

    然后,所有下载文件的链接都将指向 www.yoursite.ext/download.php?id={fileid}

    你的下载.php将执行所有访问检查(正确登录、有权下载文件等),然后执行以下操作:

    $pathToPdf = '/var/www/site/uploads/some.pdf' ;
    
    header('Content-Type: application/pdf');
    header('Content-Length: ' . filesize($pathToPdf));
    header('Content-Disposition: attachment; filename=' . 'some.pdf');
    
    readfile($pathToPdf) ;
    

    • 使用mod_rewrite或类似工具在链接中包含实际的pdf文件名,这有助于某些浏览器意识到应该下载它:www.yoursite.ext/download/{fileid}.pdf文件
    • X-Sendfile 收割台