Theo mã của bạn, $row[1]
là "tên tệp". Tiêu đề Loại nội dung phải chứa loại nội dung thay vào đó, tức là loại kịch bản của tệp, ví dụ:
header('Content-type: application/pdf');
Nếu bạn muốn thêm tên tệp:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$row[1]);
print $data;
Đảm bảo $data
là nội dung của tệp, thứ mà bạn có thể lấy từ readfile ()
chẳng hạn.
Đọc thêm hướng dẫn sử dụng: http://php.net/manual/en/ Chức năng .readfile.php
Xin lưu ý rằng mặc dù trình duyệt có thể dễ dàng xem được PDF và hình ảnh, nhưng tôi nghĩ Excel cần một số đặc biệt plugin cho điều đó.
Một ví dụ đầy đủ hơn ngay trong sách hướng dẫn , để giúp bạn hiểu rõ hơn (không phải tất cả các tiêu đề đó đều cần thiết và bạn nên thay đổi các tiêu đề khác cho phù hợp với mã của mình):
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;