我有一个php文件下载器,我一直在用它下载word文档,现在我需要允许它下载pdf,它不会打开说明pdf已损坏的文档。
我已经查找了内容类型,ect和t似乎对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;
}
<?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');
这对我每次都有效。你可以试试。