Php 保护下载
我只是在下面测试这个下载脚本。下载工作正常,但下载的zip或rar存档文件始终损坏,无法打开。我在本地开发服务器和我的托管帐户上测试了它 我只是想了解它是如何工作的,但我并不真正理解它 感谢您的帮助 测试代码:Php 保护下载,php,download,x-sendfile,Php,Download,X Sendfile,我只是在下面测试这个下载脚本。下载工作正常,但下载的zip或rar存档文件始终损坏,无法打开。我在本地开发服务器和我的托管帐户上测试了它 我只是想了解它是如何工作的,但我并不真正理解它 感谢您的帮助 测试代码: <?php $is_logged_in = 1; $path_to_file = 'downloads/tes.zip'; $file_name = 'test.zip'; if ($is_logged_in == 1) { header("X-Sendfile: $pa
<?php
$is_logged_in = 1;
$path_to_file = 'downloads/tes.zip';
$file_name = 'test.zip';
if ($is_logged_in == 1)
{
header("X-Sendfile: $path_to_file");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$file_name\"");
exit;
}
?>
<h1>Permission denied</h1>
<p>Please Login first!</p>
拒绝许可
请先登录
您很可能在文件中添加了某些内容。尽量使用和清洁
<?php
ob_start();
$is_logged_in = 1;
$path_to_file = 'downloads/tes.zip';
$file_name = 'test.zip';
if ($is_logged_in == 1)
{
$fp = fopen($path_to_file, 'rb');
if(is_resource($fp))
{
ob_clean();
header("Content-Type: application/force-download");
header("Content-Length: " . filesize($path_to_file));
header("Cache-Control: max_age=0");
header("Content-Disposition: attachment; filename=\"$file_name\"");
header("Pragma: public");
fpassthru($fp);
die;
}
} else {
echo "<h1>Permission denied</h1>";
echo "<p>Please Login first!</p>";
}
您是否已将Web服务器(尤其是Apache)配置为加载?如果没有安装该模块,您的脚本基本上不会执行任何操作。在文本编辑器中打开该文件。你看到了什么?你没有发送任何数据,是吗?你是否按照该代码的建议安装了modxsendfile
?@icktoofay,不,对不起,我想这两台服务器都没有安装。我只是想,如果没有安装,代码会停止运行。我没有收到任何错误-下载工作正常。是否有替代使用modxsendfile的方法。不需要安装模块就可以做到这一点吗?谢谢,在我写的时候把它和标题一起保存,它解决了IE下载的一些问题。