如果链接已知,我想保护文件不被下载。我的根文件夹中有一个文件,并使用以下内容创建了一个.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访问此文件并使用以下代码下载?谢谢!
答案 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由问题解决。