Ich erstelle eine sehr große Tabelle in einer einzigen Zeichenfolge $ Ausgabe mit den Daten aus einer MySQL-Datenbank. In Ende des PHP-Skript, ich sende zwei Header:PHP senden 0 Bytes Excel-Datei durch Echo
header("Content-type: application/msexcel");
header("Content-Disposition: attachment; filename=action.xls");
Das Problem ist, wenn der große Tisch über mehr als 55000 Zeilen. Wenn dies geschieht, ist die gesendete Datei 0 Bytes und der Benutzer öffnet eine leere Datei. Ich sende die Datei durch diese nach den Headern:
echo $output;
Wenn die Tabelle nicht zu viele Zeilen hat, die Datei gesendet Arbeit. Wie sende ich eine Datei so, dass die Größe der Ausgabe $ string nicht von Bedeutung ist?
Sie erscheinen nicht eine gültige xls-Datei zu machen. Ihr Header sollte den Dateityp * actual * widerspiegeln. – rtfm
Dieses Skript druckt auch andere Dateien, und ich habe die Anzahl der Register auf weniger als 55000 zum Testen geändert und das Skript hat die Datei korrekt gesendet. Wenn die Register zu groß werden, wird die Datei nicht gesendet. Ich habe eine Datei in das Dateisystem erstellt und überprüft, dass die Datei 10 MB hat. –