Принудительная загрузка файлов с удаленного сервера. Загрузка поврежденного ZIP -файла - PHP
Я работаю над созданием очень простого защищенного паролем "загрузчика файлов", который принудительно загружает файлы с удаленного сервера (mediafire) после ввода пароля, он работает, но файл всегда поврежден, и каждый раз, когда я пытаюсь его открыть, Windows говорит: "Windows не может открыть папку, сжатая (заархивированная) папка "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 возвращает целое число. Кто-нибудь знает, почему загрузка все еще идет как поврежденная?