使用php和html链接下载pdf文件

使用php和html链接下载pdf文件,php,html,pdf,Php,Html,Pdf,我已经编写了一些代码来从数据库中选择一行并生成链接。该链接正常工作,但当我尝试下载pdf时,我发现: ����)�^�z8��AQ�[��rr�=��73KJ��KR]�PD�H�����>3;,;~˾����ɫS����/ؤ���,������=??<8��3��L�����e�\I�aN�i.����A�.�����������|x�F�oN���1>MʙJ�#�Mz�'�N��?K��sx`D�5gژ�r&�N3��M�f����߱9<]R��,))�d

我已经编写了一些代码来从数据库中选择一行并生成链接。该链接正常工作,但当我尝试下载pdf时,我发现:

����)�^�z8��AQ�[��rr�=��73KJ��KR]�PD�H�����>3;,;~˾����ɫS����/ؤ���,������=??<8��3��L�����e�\I�aN�i.����A�.�����������|x�F�oN���1>MʙJ�#�Mz�'�N��?K��sx`D�5gژ�r&�N3��M�f����߱9<]R��,))�dj���D@k&O-�7V����M��d�I��HMN=��9��/�ubS���`189\S�����f�p_��T�T�&ӭ���E>�O�)eAœ
显示在页面上

我的代码是:

<?php
$sql="SELECT * from table1 where invoice_number = '".$_GET["inv"]."' and sequence = '".$_GET["seq"]."' ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
if(mysql_num_rows($rs) > 0)
{
    $result=mysql_fetch_array($rs);

    $file = 'http://www.domain.co.uk/invoices/'.$result["pdf"].'';
    $filename = 'Custom file name for the.pdf'; /* Note: Always use .pdf at the end. */

    header('Content-type: application/pdf');
    header('Content-Disposition: inline; filename="' . $filename . '"');
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: ' . filesize($file));
    header('Accept-Ranges: bytes');

    @readfile($file);
}
?>
我想知道如何让它下载文件,而不是尝试在浏览器中显示它。请注意,它是一个共享主机服务器,因此我无法对实际服务器本身进行许多更改,请更改以下内容:

header('Content-Disposition: inline; filename="' . $filename . '"');


$sql=从表1中选择*,其中发票号='.$'获取[inv].'和序列='.$'获取[seq].';不要在没有清理的情况下将$\u GET vars填充到查询中。更好地使用事先准备好的语句。您的代码非常容易受到SQL注入的攻击。我仍然得到相同的结果:@charliejsford删除内容传输编码头声明。仍然相同,我收到这样的信息:警告:无法修改标题信息-标题已经由/home/integra/public_html/customer/index.php:3 in/home/integra/public_html/customer/downloadpdfinvoice.php第11行的输出发送,index.php中的第03行是什么?那么settings.php就是:
header('Content-Disposition: attachment; filename="' . $filename . '"');