我不明白HTML的标题,但这里的基本想法是更改标题,并跟随用户下载的文件。链接(任何你想要的,可以链接到一个函数,或使用l())将导致执行某个函数;在该函数中,它会调用php函数header()在drupal执行任何操作之前将正确的头返回给浏览器,然后是您希望用户下载的文件;之后,你可以调用die()函数来完成执行。
对于浏览器,它会开始下载文件。但是对于你需要放在header()函数中的东西,我也不太确定,你可以进一步搜索这个。
更新:这里是我用于为用户提供一个Excel可读的文件下载代码:
function download_as_excel($header, $rows, $filename = 'result.xls',$pre_content = "",$post_content = "")
{
//Export the table to MS Excel.
header('Content-type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Disposition: attachment; filename="'.$filename.'"');
$output = '<html>';
$output .= '<head><meta http-equiv=Content-Type content="text/html; charset=utf-8"></head>';
$output .= '<body>';
$output .= $pre_content;
$output .= theme('table', array('header' => $header, 'rows' => $rows));
$output .= $post_content;
$output .= "</body></html>";
print $output;
exit;
}
你能更具体嗯...可能是工作,如果位置前链接被采取?死亡()会回到最后一页?应该使用header(“Location:...”)吗?或标题(“Content-Disposition:attachment;”)? – bopjazz
我已更新我的评论,以包含我们用作示例的代码;因为浏览器已将下载文件作为链接返回的内容,因此以后不会重定向到其他页面(意思是:保持在同一页面中) – songyy
工作正常!哇!谢谢。我只能使用以下内容,请参阅我的回复 print $ output; – bopjazz