我想从受.htaccess保护以进行正常访问的文件夹中下载文件。我找到了很多教程,但没有一个对我有用。
.htaccess
<files "passportScan.jpg">
deny from all
</files>
php
$file_name = 'passportScan.jpg';
$file_url = self::SERVER_URL . 'uploads/prom_conf/'.$user['uid'].'/' . $file_name;
header("Content-Description: File Transfer");
header('Content-Type: image/jpeg');
header("Content-disposition: attachment; filename='"".$file_name."'"");
readfile($file_url);
当我访问url/uploads/passportScan.jpg时,它是被禁止的。这是正确的。但当我调用我的php方法时,它会强制下载文件,但随后出现错误"无法读取文件头!未知文件格式或找不到文件!"
编辑如果我删除htaccess,它会正常工作。
编辑2链接是通过电子邮件调用的。
如果文件与php脚本位于同一服务器上,只需使用内部路径
您可以创建文件,例如download.php
,然后使用download.php?file=ID
下载该图像,而不是使用完整的http url。