diff --git a/src/Exporter/Csv/CsvExporter.php b/src/Exporter/Csv/CsvExporter.php index 4315c25..828e89a 100644 --- a/src/Exporter/Csv/CsvExporter.php +++ b/src/Exporter/Csv/CsvExporter.php @@ -40,6 +40,11 @@ public function export(array $columnNames, \Iterator $data): \SplFileInfo return new \SplFileInfo($filePath); } + public function getMimeType(): string + { + return 'text/csv'; + } + public function getName(): string { return 'csv'; diff --git a/src/Exporter/DataTableExporterInterface.php b/src/Exporter/DataTableExporterInterface.php index 287afc0..34823a8 100644 --- a/src/Exporter/DataTableExporterInterface.php +++ b/src/Exporter/DataTableExporterInterface.php @@ -26,6 +26,11 @@ interface DataTableExporterInterface */ public function export(array $columnNames, \Iterator $data): \SplFileInfo; + /** + * The MIME type of the exported file. + */ + public function getMimeType(): string; + /** * A unique name to identify the exporter. */ diff --git a/src/Exporter/DataTableExporterManager.php b/src/Exporter/DataTableExporterManager.php index a896193..0836632 100644 --- a/src/Exporter/DataTableExporterManager.php +++ b/src/Exporter/DataTableExporterManager.php @@ -69,6 +69,7 @@ public function getResponse(): Response $response = new BinaryFileResponse($file); $response->deleteFileAfterSend(true); + $response->headers->set('Content-Type', $exporter->getMimeType()); $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, $response->getFile()->getFilename()); $this->dataTable->getEventDispatcher()->dispatch(new DataTableExporterResponseEvent($response), DataTableExporterEvents::PRE_RESPONSE); diff --git a/src/Exporter/Excel/ExcelExporter.php b/src/Exporter/Excel/ExcelExporter.php index 2b83d9e..0e0c873 100644 --- a/src/Exporter/Excel/ExcelExporter.php +++ b/src/Exporter/Excel/ExcelExporter.php @@ -67,6 +67,11 @@ private function autoSizeColumnWidth(Worksheet $sheet): void } } + public function getMimeType(): string + { + return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + } + public function getName(): string { return 'excel'; diff --git a/tests/Fixtures/AppBundle/DataTable/Exporter/TxtExporter.php b/tests/Fixtures/AppBundle/DataTable/Exporter/TxtExporter.php index 077d579..93b4213 100644 --- a/tests/Fixtures/AppBundle/DataTable/Exporter/TxtExporter.php +++ b/tests/Fixtures/AppBundle/DataTable/Exporter/TxtExporter.php @@ -35,6 +35,11 @@ public function export(array $columnNames, \Iterator $data): \SplFileInfo return new \SplFileInfo($filename); } + public function getMimeType(): string + { + return 'text/plain'; + } + public function getName(): string { return 'txt';