从远程服务器下载强制文件下载损坏的ZIP - PHP

时间:2018-03-06 17:10:38

标签: php download http-headers force-download

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

0 个答案:

没有答案