Ich habe eine Methode, die versucht, eine XLSX-Datei (Excel 2007) zu senden, die auf dem Server vorhanden ist. Die xlsx-Datei ist in Ordnung, ich kann sie (lokal) vom Server öffnen.Binäre Datei (Excel-Datei) an den Browser in CakePHP senden 3.3
Wenn die Datei jedoch von der Clientseite heruntergeladen wird, wird sie beschädigt. Hier ist die Methode:
public function exportToExcel()
{
$fileName = ROOT . '/files/xls' . DS . 'assessors.xlsx';
$this->autoRender = false;
$assessors = $this->StaAssessors->find('all');
$this->Utils->exportToExcel($fileName, $assessors);
$this->response->type('xlsx');
$this->response->file($fileName, ['download' => true ]);
return($this->response);
}
Ich denke, das Problem ist, dass die Excel-Datei komprimiert ist, und meine Methode etwas nicht korrekt verarbeitet die Binärdatei an den Browser gesendet werden.
Unten habe ich die Header angehängt, wie sie vom Browser empfangen werden.
Gibt es eine Sache, die ich fehle?
Sie müssen einige Debugging (und zeigen Sie die Ergebnisse), ohne weitere Informationen können alle Menschen tun, ist im Dunkeln, was nicht sehr hilfreich ist. Welche Header werden beim Anfordern der Datei gesendet (überprüfen Sie die Netzwerkkonsole Ihres Browsers)? Wie genau unterscheidet sich der heruntergeladene Inhalt vom Inhalt auf dem Server? – ndm