PHP Download excel-Datei beschädigt wird

Ich habe eine excel-Datei, die ich möchten, dass ein Benutzer in der Lage sein, um download von meinem server. Ich sah eine Menge von Fragen hier, aber ich kann nicht einen Weg finden, um richtig laden Sie die Datei w/o-Korruption. Ich gehe davon aus es ist der Header, aber ich hatte noch nicht eine funktionierende Kombination von Ihnen noch. Dies ist, was ich jetzt haben und in der korrupten Datei, die ich erhalten, ich kann sehen, dass die Spaltennamen der Tabelle, den ich will, aber es ist alles Durcheinander.

$filename = '/var/www/web1/web/public/temporary/Spreadsheet.xls';        
header("Content-type: application/octet-stream");
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=ExcelFile.xls;");
header("Pragma: no-cache");
header("Expires: 0");
readfile($filename);

edit: Lösung ich vergaß hinzuzufügen, dass ich mit Zend und es war die Beschädigung der Dateien, beim Versuch, verwenden Sie das native php-Methoden. Meine Haushaltsrede war der code für einen link zu einer anderen Aktion in meinem controller und haben die Dateien herunterzuladen, von dort

public function downloadAction(){
        $file = '/var/www/web1/web/public/temporary/Spreadsheet.xls';
        header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename="Spreadsheet.xls"');
    readfile($file);

    //disable the view ... and perhaps the layout
    $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);


    }
durch das herunterladen, ich denke mal du meinst die Anzeige im browser? Anstatt einer geraden Datei herunterladen
Ausgabe 2 Inhalt Header ist sinnlos - eine Datei kann nicht zwei Dinge auf einmal. es ist wie wenn man sagt "ich bin eine giraffe und ein Wal!".
Durch einen langen, langen Weg die häufigste Antwort(en) auf diese Art von Fragen ist entweder: a) Sie haben eine führende/nachfolgende Leerzeichen/HTML vor/nach der <?php ?> Variablen in Ihrem Skript oder ein BOM in der Datei oder b) du hast vergessen zu nennen exit/die nach der readfile() und mehr Inhalt war die Ausgabe am Ende der Datei Daten.
Ich meine einen direkt-download.
mir fehlte ein exit auf meine Aussage, das würde aufhören, mich von der Datei alle zusammen, aber die Datei kommt immer noch korrupt.

InformationsquelleAutor rubio | 2012-01-31

Schreibe einen Kommentar