我正在制作一个非常简单的受密码保护的“文件下载程序”,它在输入密码后强制从远程服务器(mediafire)下载似乎工作但文件总是被损坏,随时我试图打开它,Windows说:“Windows无法打开压缩(zipped)文件夹的文件夹'C:/ users ..'无效”。 以下是下载脚本的代码:
$yourfile ='http://www.mediafire.com/file/filelinkhere';
ob_start();
if(isset($_POST['submit'])) {
$password = $_POST['password']; // required
if ($password <> "somepasswordhere") {
echo "<script type='text/javascript'>alert('//error: incorrect password//')</script>";
header( "Refresh:0; url=https://www.home/transfer.php", true, 303);
} else {
$filename = basename($yourfile);
header('Content-Transfer-Encoding: binary');
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="'.$filename.'"');
$size = filesize($yourfile);
header('Content-Length: '.$size.'');
readfile($yourfile);
exit;
}
}
使用来自另一个相关堆栈问题的建议我确保content-length头使用真实字符串,因为filesize返回一个整数。有谁知道为什么下载仍然是腐败的?