Mysql
 sql >> Base de données >  >> RDS >> Mysql

Afficher le fichier stocké dans la base de données à l'aide de php sur le navigateur

Selon votre code, $row[1] est "le nom du fichier". L'en-tête du type de contenu doit contenir le type de contenu à la place, c'est-à-dire le type MIME du fichier, par exemple :

header('Content-type: application/pdf');

Si vous souhaitez ajouter un nom de fichier :

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$row[1]);
print $data;

Assurez-vous que $data est le contenu du fichier, quelque chose que vous pouvez prendre de readfile() par exemple.

En savoir plus sur le manuel :http://php.net/manual/en/function .readfile.php

Gardez à l'esprit que bien que les PDF et les images soient facilement visibles par un navigateur, je pense qu'Excel a besoin de quelques éléments ad hoc plugin pour ça.

Un exemple plus complet tout droit sorti du manuel , pour vous faire une idée plus approfondie (tous ces en-têtes ne sont pas nécessaires, et vous devez en modifier d'autres en fonction de votre code) :

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;