ciao!
in sostanza devo creare una funzione che, inviato un form, mi crea un file xlsx e lo scarica.
ho installato phpspreadsheet e fatto questo (in realtà questo è l'ultimo test che ho fatto):
il problema è che non scarica il file, ma visualizza i dati binari su pagina.codice:<form method="post" action="" class="container-fluid"> <?php if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['btn_esporta'])) { $spreadsheet = new Spreadsheet(); $spreadsheet ->getProperties() ->setCreator('The Space Cinema') ->setLastModifiedBy('The Space Cinema') ->setTitle('The Space Cinema') ->setSubject('The Space Cinema') ->setDescription('The Space Cinema'); $spreadsheet->setActiveSheetIndex(0) ->setCellValue('A1', 'Hello') ->setCellValue('B2', 'world!') ->setCellValue('C1', 'Hello') ->setCellValue('D2', 'world!'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="contest.xlsx"'); header("Pragma: no-cache"); header("Expires: 0"); $fileName = get_content_dir() . 'contest.xlsx'; $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); ob_end_clean(); $writer->save('php://output'); } ?> <button type="submit" name="btn_esporta" class="btn btn-success btn-lg">Esporta in XLS</button> </form>
come posso forzare il download del file??

Rispondi quotando