使用PHP下载PDF-->;错误内容长度不匹配

使用PHP下载PDF-->;错误内容长度不匹配,php,pdf,download,content-length,http-content-length,Php,Pdf,Download,Content Length,Http Content Length,我想从我的服务器上通过PHP下载一个PDF,它也是通过PDF上传的。虽然它适用于某些文件,但我在个别文件中收到以下错误消息: 错误内容与长度不匹配 这是我的下载功能: if($_GET['funktion'] == 'downloadallgemein') { $filename = basename($dateiname); $path = '/kunden/261105_71522/webseiten/dev.delst/uploads/'.$filena

我想从我的服务器上通过PHP下载一个PDF,它也是通过PDF上传的。虽然它适用于某些文件,但我在个别文件中收到以下错误消息:

错误内容与长度不匹配

这是我的下载功能:

if($_GET['funktion'] == 'downloadallgemein')
 {

        $filename = basename($dateiname);
        $path = '/kunden/261105_71522/webseiten/dev.delst/uploads/'.$filename.''; // the file made available for download via this PHP file
        if (file_exists($path)) {
                $mm_type="application/octet-stream"; // modify accordingly to the file type of $path, but in most cases no need to do so

                header("Pragma: public");
                header("Expires: 0");
                header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
                header("Cache-Control: public");
                header("Content-Description: File Transfer");
                header("Content-Type: " . $mm_type);
                header("Content-Length: " .(string)(filesize($path)) );
                header('Content-Disposition: attachment; filename="'.basename($path).'"');
                header("Content-Transfer-Encoding: binary\n");

                readfile($path); // outputs the content of the file

                exit();
        }

        else
        echo'Datei wurde nicht auf dem Server gefunden';
 }  
如果我删除标题(“内容长度:”(字符串)(文件大小($path))下载正常,但PDF文件随后被破坏,无法打开

路径正确,文件位于服务器上。所以上传是有效的

我做错了什么

标题(“内容类型:应用程序/pdf”)

标题('Content-Disposition:attachment;filename=“”.basename($filename)。“”)

标题('Content-Length:'.filesize($filename))

readfile($filename)

我使用这个标题在php文件中下载pdf

标题(“内容类型:应用程序/pdf”)

标题('Content-Disposition:attachment;filename=“”.basename($filename)。“”)

标题('Content-Length:'.filesize($filename))

readfile($filename)

我使用这个标题在php文件中下载pdf


为什么要在字符串中键入强制转换文件大小?此外,此问题可能与服务器设置有关。服务器上可能设置了执行时间限制。使用设置时间限制(0)将其禁用;(如果允许的话)。如果我禁用时间限制,我仍然有相同的行为。如果删除字符串强制转换,我也会收到相同的错误消息。请尝试发送较小的文件,并检查它们是否正确发送。检查服务器发送的标题。为什么要在字符串中键入强制转换文件大小?此外,此问题可能与服务器设置有关。服务器上可能设置了执行时间限制。使用设置时间限制(0)将其禁用;(如果允许的话)。如果我禁用时间限制,我仍然有相同的行为。如果删除字符串强制转换,我也会收到相同的错误消息。请尝试发送较小的文件,并检查它们是否正确发送。检查服务器发送的标头。