0

我在我的表中使用 php/mysql 我有一个名为“PDF”的列。

每行在我的网络服务器上都有一个 PDF 文件的路径,我正在使用这个 PHP 代码:

$sql="SELECT * from table1 where customer_sequence = '53' and invoice_number = '1234' and sequence = '7839' ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
$result=mysql_fetch_Array($rs);

header('Content-disposition: attachment; filename=/path/to/file/'.$result["pdf"].'');
header('Content-type: application/pdf');
readfile('/path/to/file/'.$result["pdf"].'');

SQL 工作正常,但是一旦它尝试下载它就什么也不做。

我也试过:

header("Location: /path/to/file/".$result["pdf"]."");

但仍然没有运气 - 任何想法我能做什么?

4

1 回答 1

1

好吧,让我们整理一下。首先,您不应该在标题中输出文件的完整路径。只需使用这个:

header('Content-disposition: attachment; filename='.$result["pdf"]);

filename在那个标题中只是告诉浏览器一个文件名,它应该用来保存文件。

其次,readfile()粘贴 URL 时不遵循浏览器使用的路径。readfile()使用DOCUMENT_ROOT. 有关更多信息,您可以阅读此答案,例如:Document Root PHP

编辑 您的代码应如下所示:

$sql="SELECT * from table1 where customer_sequence = '53' and invoice_number = '1234'     and sequence = '7839' ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
$result=mysql_fetch_Array($rs);

header('Content-disposition: attachment; filename='.$result["pdf"]);
header('Content-type: application/pdf');
readfile($_SERVER['DOCUMENT_ROOT'] . '/path/to/file/'.$result["pdf"]);
于 2013-04-08T23:24:05.820 回答