Kuvvet indir çalışan, ancak yerel açmaya çalışırken geçersiz gösteren

1 Cevap php

Ben bu fonksiyonu yazdı ve ben indirilen kopyasını açmaya ve bu dosya geçersiz olduğunu gösterir kadar her şey iyi çalışıyor. İşte benim fonksiyonudur


    function download_file() {
    //Check for download request:
    if(isset($_GET['file'])) {
        //Make sure there is a file before doing anything
        if(is_file($this->path . basename($_GET['file']))) {
            //Below required for IE:
            if(ini_get('zlib.output_compression')) {
                ini_set('zlib.output_compression', 'Off');
            }

            //Set Headers:
            header('Pragma: public');
            header('Expires: 0');
            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $this->path . basename($_GET['file'])) . ' GMT');
            header('Content-Type: application/force-download');
            header('Content-Disposition: inline; filename="' . basename($_GET['file']) . '"');
            header('Content-Transfer-Encoding: binary');
            header('Content-Length: ' . filesize($this->path . basename($_GET['file'])));
            header('Connection: close');
            readfile($this->path . basename($_GET['file']));
            exit();
        }
    }
}

EDIT: geçersiz olarak, örneğin ben File Format Desteksiz, bir resim indirmek ve iPhotos veya Windows Picture Viewer görüntülemek için deneyin ve diyor. Ben sunucu üzerinde görüntülemek zaman iyi görünüyor ama indirdikten sonra bozuk olduğunu.

1 Cevap

Teşekkürler Gumbo, bunu denedim ve outputted:

Warning: gmdate() expects parameter 2 to be long, string given in C:\Program Files\Wamp Server\www\TutToasterUpload\PHPClass.php on line 83
lets see what happens

Bu sabit hat:

//Added filemtime();    
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($this->path . basename($_GET['file']))) . ' GMT');