使用PHP下载PDF-->;错误内容长度不匹配
我想从我的服务器上通过PHP下载一个PDF,它也是通过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
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)将其禁用;(如果允许的话)。如果我禁用时间限制,我仍然有相同的行为。如果删除字符串强制转换,我也会收到相同的错误消息。请尝试发送较小的文件,并检查它们是否正确发送。检查服务器发送的标头。