2012-05-29 23 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的值。