コードによると、$row[1]
「ファイル名」です。コンテンツタイプヘッダーには、コンテンツタイプが含まれている必要があります 代わりに、ファイルmimeタイプ(例:
header('Content-type: application/pdf');
ファイル名を追加する場合:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$row[1]);
print $data;
必ず$data
はファイルの内容であり、 readfile()
から取得できます。 たとえば。
マニュアルの詳細: http://php.net/manual/en/function .readfile.php
PDFと画像はブラウザで簡単に表示できますが、Excelにはアドホックが必要だと思います。 そのためのプラグイン。
より完全な例マニュアルからすぐに 、より完全なアイデアを得るために(これらのヘッダーのすべてが必要なわけではなく、コードに応じて他のヘッダーを変更する必要があります):
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;