我提前为这个令人困惑的问题措辞道歉,但我无法弄清楚如何把这个。
我基本上在数据库中有一个字符串,我打算让用户下载。我该怎么做呢?
我试图使用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设置来启动文件下载。
修改
虽然我在这里,但是无论如何我还是要获得多个这样的文件,比如从数据库返回多个字符串,将它们保存为单独的文本文件,压缩它们并发送它们对用户?或者,这需要保存到服务器?
感谢任何帮助!
答案 0 :(得分:3)
您可以将其设为链接
<ul>
<li class="click_link">John</li>
<li class="click_link">Bob</li>
</ul>
<script>
$('li').click(function(e) {
window.location.href = 'getfile.php?name=' + $(this).text();
});
</script>
然后将$_POST
更改为$_GET
。
只要您的标题设置正确,就会下载该文件。