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

时间:2012-06-01 07:53:29

标签: php pdf corruption ob-start

我目前正在开发一个我没有亲自开发过的网站。它是基于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();

或类似的东西?

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

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

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

纪尧姆。

1 个答案:

答案 0 :(得分:0)

你没有向我们展示的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.