我有一个php文件下载器,我一直用它来下载word文档,现在我需要允许它下载pdf,它不会打开文件说明pdf已损坏。
我已经查找了内容类型,对于pdf来说似乎是正确的,但是,我不确定它可能是什么。我是否遗漏了下载pdf所需的更多标题?我对此很新,所以我不确定所有可能出现的问题。
我的代码:
if ($fd = fopen ($fullPath, "r")) {
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "pdf":
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");
break;
case "docx":
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
break;
default;
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
break;
}
答案 0 :(得分:0)
<?php
header("Content-Type: application/pdf");
header("Content-Type: application/x-download");
header('Content-disposition: attachment; filename="test.pdf"');
header('Content-length: ' . filesize('test.pdf'));
readfile('test.pdf');
每次都适合我。你可以尝试一下。