Принудительная загрузка файлов с удаленного сервера. Загрузка поврежденного 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 возвращает целое число. Кто-нибудь знает, почему загрузка все еще идет как поврежденная?

0 ответов

Другие вопросы по тегам