2010-07-20 103 views
6

我喜歡這個PHP:強制下載後顯示內容?

<?php 

if (file_exists("./foo.txt")) { 

    header("Content-type: application/force-download"); 
    header("Content-length: ".filesize("./foo.txt")); 
    header('Content-Disposition: attachment; filename="foo.txt"'); 
    readfile('./foo.txt'); 
} 

print "HEY!"; 

?> 

一個劇本,我想「嗨」被強制下載後寫入網頁,這怎麼可能?

我看到像「如果你的下載沒有自動啓動,請點擊」下載的網頁,所以它的內容和下載?我的示例中的hey包含在文本文件中,因此不起作用。

回答

3

這將只可能有multipart message。但不幸的是沒有很多瀏覽器,支持HTTP多部分消息(我認爲歌劇是唯一的一個)。

這就是爲什麼通常的做法是將下載頁面發送到元刷新重定向以同時具有文本消息和下載操作(雖然它的順序相反)。

1

這是不可能的這種方式。 (至少只要我們沒有多部分請求。)

你提到重定向到「如果你不能下載....」頁面中的頁面,並從那裏觸發下載,通常使用JavaScript在新窗口中打開下載。

1

顯示另一頁上的信息..然後提供一個鏈接來下載文件或瀏覽器重定向到強制下載PHP文件..

3

你可以用META REFRESH做這樣的:

<meta http-equiv=REFRESH CONTENT="5; url=http://your_domain/your_file"> 
+0

+1爲老學校:) – 2014-09-30 06:23:45

0
onClick="setTimeout(location.reload.bind(location), 15000);" 

這將等待15秒(15,000毫秒),然後調用location.reload功能,這是一個內置功能刷新頁面。