0

我正在制作一个非常简单的受密码保护的“文件下载器”,它在输入密码后强制从远程服务器(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 返回一个整数。有谁知道为什么下载仍然是腐败的?

4

0 回答 0