如何允许PHP文件访问禁止的文件

时间:2017-08-19 11:41:09

标签: php .htaccess

如果链接已知,我想保护文件不被下载。我的根文件夹中有一个文件,并使用以下内容创建了一个.htaccess文件:

<Files ~ "\.xlsx$">
  Order allow,deny
  Deny from all
</Files>

加载链接(www.domain.com/excel.xlsx)后,浏览器会产生403 Forbidden错误。这是正确的。

我已将此PHP文件放在根目录中的文件夹中:

<?php
    echo '<a href="../Excel.xlsx" download>Click to download</a>';
?>

但是当我点击下载时,我再次收到403错误。

如何允许PHP访问此文件并使用以下代码下载?谢谢!

2 个答案:

答案 0 :(得分:0)

目前您没有使用php将文件发送给用户。用户只需单击链接即可尝试直接访问该文件。所以这将以403结束。

您必须通过php读取文件服务器端并将其作为流发送给用户。这是一个代码示例:

// open the file in a binary mode
$name = './Excel.xlsx';
$fp = fopen($name, 'rb');

// send the right headers
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Length: " . filesize($name));

// dump the xlsx and stop the script
fpassthru($fp);
exit;

答案 1 :(得分:0)

检查您的.htaccess文件的权限,644由问题解决。