Domanda

Ho la seguente funzione per forza scaricare un file:

static public function download($file, $options=array()) {
    $content = (isset($options['content'])) ? $options['content'] : '';
    $contentType = (isset($options['contentType'])) ? $options['contentType'] : '';
    header('Cache-Control: public');
    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename='.File::filename($file));
    header('Content-Type: '.$contentType);
    header('Content-Transfer-Encoding: binary');
    if ($content!='') {
        echo $content;
    } else {
        readfile($file);
    }
}

mando un file PDF e contentType = "application / pdf". il problema è che quando cerco di aprire il file scaricato in formato PDF si dice "C'è stato un errore l'apertura di questo documento. Il file può essere danneggiato". E 'strano perché posso aprire il file originale e sembrano esattamente lo stesso (nome del file, dimensioni, ecc)

È stato utile?

Soluzione

Controllare l'assenza di uscita prima di questa funzione viene lanciata, e per buona misura, usare il costrutto exit alla fine di questa funzione:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top