Gemäß Ihrem Code $row[1]
ist "der Dateiname". Der Header des Inhaltstyps sollte den Inhaltstyp enthalten stattdessen, d. h. der Datei-Mime-Typ, zum Beispiel:
header('Content-type: application/pdf');
Wenn Sie einen Dateinamen hinzufügen möchten:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$row[1]);
print $data;
Stellen Sie sicher, dass $data
ist der Inhalt der Datei, etwas, das Sie readfile()
entnehmen können zum Beispiel.
Lesen Sie mehr über das Handbuch:http://php.net/manual/en/function .readfile.php
Denken Sie daran, dass PDF und Bilder zwar problemlos von einem Browser angezeigt werden können, Excel meiner Meinung nach jedoch etwas Ad-hoc benötigt Plugin dafür.
Ein vollständigeres Beispiel direkt aus dem Handbuch , um Ihnen eine gründlichere Vorstellung zu geben (nicht alle diese Header sind erforderlich, und Sie sollten andere entsprechend Ihrem Code ändern):
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;