我不明白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