我目前正在开发一个我没有亲自开发过的网站。它是基于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();
或类似的东西?
或者可能是不是来自这个缓冲区。我应该检查什么样的指示?
或者它可能不是来自代码的那部分,如果是这样,我真的迷失了......
无论如何,请提前感谢您的答案。
纪尧姆。
答案 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.