Според вашия код, $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 се нуждае от малко ad hoc плъгин за това.
По-пълен пример направо от ръководството , за да получите по-задълбочена представа (не всички тези заглавки са необходими и трябва да промените други според кода си):
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;