【问题标题】:How can I block direct URL access to all file in a folder, but still allow it to be downloaded by users?如何阻止对文件夹中所有文件的直接 URL 访问,但仍允许用户下载它?
【发布时间】:2020-07-24 06:52:28
【问题描述】:

我有一个名称为上传的文件夹,并且有我想阻止直接下载的文件我在 stackoverflow 中阅读了一个使用此链接PHP: How can I block direct URL access to a file, but still allow it to be downloaded by logged in users?,但它不起作用,只需下载一个损坏的文件

这是我的代码 .htaccess 文件

 Order Deny,Allow
    Deny from all

php 文件






  <?php



if( !empty( $_REQUEST['name'] )&& !empty( $_REQUEST['user'] ) && !empty( $_REQUEST['pass'] ) )
{
 include 'include/DbHandler.php';
$db = new DbHandler();
   $user= $_REQUEST['user'];
  $pass= $_REQUEST['pass'];
  $file_name= $_REQUEST['name'];
 // file name like this : hps.jpg
      $nest = $db->checkuserpass($user,$pass,$file_name);
 if ($nest!=2) 
  {
  /// user have premision for download 

    function getExtension($file){
        preg_match('/\.[^\.]+$/i', $file, $ext);
        return $ext[0];
    }

    //File type 
    $file_type = getExtension($file_name);



    header('Content-Description: File Transfer');
    //header('Content-Type: application/octet-stream'); 
    header('Content-Type: '.$file_type);
    header('Content-Disposition: attachment; filename='.$file_name);
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: '.filesize("$file_name"));
    ob_clean();
    flush();
    readfile("$file_name");
    exit;


  }
}
 ?>

【问题讨论】:

    标签: php html


    【解决方案1】:

    您可以将文件保存在服务器公共端之外的文件夹中,即 www 目录之外,而不是拒绝通过 .htaccess 文件访问。

    【讨论】:

    • 网站用户上传的上传文件夹中的所有文件如果我将上传文件夹更改为外部www用户olso可以直接上传文件吗?
    • 是的,您可以直接上传文件。只需使用 .. 访问这个外部目录,例如 move_uploaded_file($arquivo_tmp,"../../temp/$namefile")
    • 如果这个答案对你有帮助别忘了点击这个答案的绿旗
    • 谢谢,但其他用户无法从外部 www 目录直接下载
    猜你喜欢
    • 2011-10-30
    • 2014-01-12
    • 2016-10-24
    • 2014-06-04
    • 1970-01-01
    • 2023-04-01
    • 2017-03-04
    • 2017-08-06
    • 2012-05-23
    相关资源
    最近更新 更多