2012-05-29 44 views

回答

2

可以下載的應該放在web用戶無法觸及的範圍內,但在PHP腳本範圍內。然後,一旦用戶完成填寫表單,就可以通過使用「fopen」來強制下載文件內容。

更新(添加示例代碼):

假設該文件是「txt.txt」這可能是在您的腳本範圍。如果要存儲的電子郵件,你會打開它,閱讀,然後把內容調用頭並告訴它,它的附件(力下載)後

$done = true; 
     if($done == true){ 

      $filename = "txt.txt"; 
      $conn = fopen($filename,"r"); 

      $contents = fread($conn, filesize($filename)); 
      fclose($conn); 
      header('Content-type: text/plain');   
      header('Content-Disposition: attachment; filename="downloaded.txt"'); 
      echo $contents; 



     } 
+0

如何使用fopen下載文件? –

+0

我已經用代碼更新了我的答案。文件名「download.txt」將顯示給用戶的文件名稱。 – Arfeen

0

不知何故,後來乾脆設置一個$_SESSION值,當他們提交他們的電子郵件,並在編寫頁面時,如果$_SESSION值的一部分已設置,則提供一個鏈接到媒體。

啓動一個會話&設定值:

session_start(); 
$_SERVER['hasEmail']=true; 

,並在頁面:

session_start(); 
if ($_SERVER['hasEmail']) { 
    //Provide link 
} 

然後,您可以也有媒體鏈接帶你到使用fopen()或PHP腳本類似於從您的文件系統上的另一個位置獲取文件,該文件系統不在用戶的範圍之內,例如在.htaccess之下阻止一個文件系統,並且它只會提供介質值爲$_SESSION的值。