PHP文件下载使用隐藏的IFrame而不保存

我提前为这个令人困惑的问题措辞道歉,但我无法弄清楚如何把这个问题。

我本质上在数据库中有一个字符串,我打算让用户下载。 我该怎么做呢?

我试图使用ajax,但我不知道如何去做。

按下下载链接时将执行以下jquery代码

$.ajax({ url: 'index.php/script/downloadFile', type: 'post', data: {name: $(this).text()} }); 

相关的PHP代码如下所示:

 public function downloadScript(){ $name = $_POST['name']; $filename = $name . ".txt"; $string = //String that comes from database using name to create query $filename = $name . ".txt"; header('Content-type: text/plain'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header("Content-Length: " . strlen($string)); header("Connection: close"); echo $string; } 

基本上,我希望字符串可供用户下载为文本文件。 我不知道AJAX是否是正确的方法,或者是否有更好的方法来执行相同的任务。 (我假设更好的方法是以某种方式合并隐藏的iframe)

有关更多信息,我有一个元素列表:

  • 约翰
  • 杰夫
  • 插口
  • 单击一个时,我想将该元素名称的文本发送到php文件以形成查询。

    这就是为什么我没有简单的href设置来启动文件下载。

    编辑:

    虽然我在这里,但是无论如何我还是要获得多个这样的文件,比如从数据库中返回多个字符串,将它们保存为单独的文本文件,将它们压缩并将它们发送给用户? 或者,这需要保存到服务器?

    任何帮助表示赞赏!

    你可以把它变成一个链接

     

    然后将$_POST更改为$_GET

    只要您的标题设置正确,这将下载文件。