Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zeigen Sie die in der Datenbank gespeicherte Datei mit PHP im Browser an

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;