Mysql
 sql >> Database >  >> RDS >> Mysql

Visualizza il file memorizzato nel database usando php sul browser

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;