通过PHP允许访问受保护的文件

3

我有一组tar.gz文件,位于一个通过.htaccess保护的文件夹内,禁止http访问。我希望允许通过http直接使用curl下载这些文件。对于像图片这样的东西,我通过设置头信息来实现:

$file='/some/file/protected/by/htaccess.png';
header("Content-type: image/png");
readfile($file);

我的问题是:是否有一种类似于我使用图片的方式直接提供对这些tar.gz文件的访问?
我之所以希望以这种方式实现,是因为我想通过我们网站的登录系统来控制哪些用户可以访问这些文件。
编辑:正如Machavity所指出的那样,我的代码指向了一个jpg,并且有一个png头。

为什么不对可以访问该目录的用户IP进行白名单限制?或者在PHP中实现它呢? - Darren
2
你正在调用一个 .jpg 文件,但发送了 .png 的头文件。 - Machavity
1个回答

1
对于 tar.gz
$filename = 'path/to/your/file.tar.gz';
header('Content-Type: application/x-compressed');
header("Cache-Control: no-store, no-cache");
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
header('Content-Length: ' . filesize($filename));
readfile($filename);

看起来它可以工作。只是为了澄清,访问包含上面代码的URL将模拟在浏览器中访问实际的tar.gz文件,如果没有被.htaccess保护的话。这样理解对吗? - Csizzle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接