Secondo il tuo codice, $row[1]
è "il nome del file". L'intestazione del tipo di contenuto deve contenere il tipo di contenuto invece, ovvero il tipo di file mime, ad esempio:
header('Content-type: application/pdf');
Se vuoi aggiungere un nome file:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$row[1]);
print $data;
Assicurati $data
è il contenuto del file, qualcosa che puoi prendere da readfile()
per esempio.
Maggiori informazioni sul manuale:http://php.net/manual/en/function .readfile.php
Tieni presente che mentre PDF e immagini sono facilmente visualizzabili da un browser, penso che Excel abbia bisogno di alcuni ad hoc plug-in per questo.
Un esempio più completo direttamente dal manuale , per farti un'idea più approfondita (non tutte quelle intestazioni sono necessarie e dovresti cambiarne altre in base al tuo codice):
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;