人们正在从我的网站下载损坏的PDF


People are downloading corrupted PDF's from my website

我目前正在开发一个不是我个人开发的网站上。它是基于wordpress的,但是外部人员已经对它进行了大量开发。

我们对某些pdf有问题。当人们下载这些pdf甚至图像时,它们已损坏。我调查了原因,通过用记事本打开文件,我发现网页的html位于文档的开头。如果我删除此 html,pdf 不再损坏。

我知道问题是什么,但我似乎找不到解决方法。这是"下载"按钮的html链接。

<a href="<?php echo get_bloginfo('url');?>/?download_process=<?php echo $_GET['dl'];?>" target="_blank" id="#downloadfile_atag" class="downloadfile_atag" style="display:none;">Download</a>

当我单击此按钮时,页面将刷新,并开始下载。

我在代码中找到了这一行,它应该是负责捕获"GET"的代码的一部分:

if (isset($_GET['download_process'])) { 

这个"if"中的代码有 100 多行,我没有足够的经验来知道该怎么做。我需要一些关于在哪里看的建议。例如,有

ob_start();

在开始时,和一个

ob_clean();

在代码的中间。没有正常吗

ob_end_clean(); // or
ob_end_flush();

或类似的东西?

或者可能是不是来自这个缓冲区。我应该检查什么样的指令?

或者可能它不是来自代码的那部分,如果是这样,我真的迷路了......

无论如何,提前感谢您的回答。

纪尧姆。

在 IF 语句中,您没有向我们展示任何关于header();的内容吗?

如果是这样,内容大小有什么变化吗?(这是我目前正在做的事情,所以有几个想法)

$fsize是要下载的内容的大小。

$fsize = filesize($fullPath); //this is the filename and path
header("Content-Length: ".$fsize);  //this tells the header how big it should be.