Podle vašeho kódu $row[1]
je "název souboru". Záhlaví Typ obsahu by mělo obsahovat typ obsahu místo toho, tj. typ mime souboru, například:
header('Content-type: application/pdf');
Pokud chcete přidat název souboru:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$row[1]);
print $data;
Ujistěte se, že $data
je obsah souboru, něco, co můžete převzít z readfile()
například.
Přečtěte si více v příručce:http://php.net/manual/en/function .readfile.php
Mějte na paměti, že zatímco PDF a obrázky lze snadno zobrazit v prohlížeči, myslím, že Excel potřebuje nějaké ad hoc plugin pro to.
Úplnější příklad přímo z příručky , abyste získali důkladnější představu (ne všechna tato záhlaví jsou nezbytná a ostatní byste měli změnit podle svého kódu):
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;