PHP强制下载文档

PHP强制下载文档,php,file,Php,File,我在一个php文档中使用以下代码强制下载pdf表单,因为只有在本地机器上(而不是在线机器上)才可以提交 它可以下载文件,但会破坏它。 我无法再打开pdf文档 <?php $file_name = 'costumer.pdf'; $file_url = 'http://www.lopezi.com/forms/' . $file_name; header('Content-Type: application/pdf'); header("Content-Transfer-Encoding:

我在一个php文档中使用以下代码强制下载pdf表单,因为只有在本地机器上(而不是在线机器上)才可以提交

它可以下载文件,但会破坏它。 我无法再打开pdf文档

<?php 
$file_name = 'costumer.pdf';
$file_url = 'http://www.lopezi.com/forms/' . $file_name;
header('Content-Type: application/pdf');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"".$file_name."\""); 
readfile($file_url);

?>

在这种情况下不需要
内容传输编码
标题。此外,我怀疑您在输出的文件中有损坏

下载到某个地方,打开记事本,然后将文件拖到那里。如果生成任何PHP警告或错误,您将在顶部看到它们

此外,请尽量避免从脚本返回更多内容,从而导致下载问题,并以以下方式结束:

die(file_get_contents($file_url));

这样,您就不会通过添加更多输出而意外地破坏代码。

此代码不可能修改您的
PDF
文件的内容,并且
已损坏
It为什么要从url执行readfile()?这将强制服务器执行完整的http请求以获取此文件。特别是如果这是你自己的服务器开始。。。如果文件在下载时已损坏,则保存该文件,获取已知的良好副本,并将其与其他文件进行比较,查看有何更改。@HankyPankyㇱ 除非PHP文件本身生成警告或警告。提示:在PHP中处理奇怪的文件格式(如pdf;)时,请使用文本编辑器打开生成的文件-输出中可能插入了默认查看应用程序无法处理的通知或警告。如果代码在@HankyPanky中执行某些操作ㇱ 因为原始文件很好。阅读带有url的文件@Marc B,是的,新手。@易懂,无警告或错误,打开便笺谢谢提示。我用记事本打开了:没有错误。原始文件没有问题。