我提前为令人困惑的问题措辞道歉,但我不知道该怎么说。
实际上,我在数据库中有一个字符串,我打算让它可以供用户下载。我该怎么做?
我试图使用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设置来启动文件下载。
编辑:
当我在做这件事的时候,有没有办法让我获得不止一个这样的文件,比如说有多个从数据库返回的字符串,将它们保存为单独的文本文件,将它们压缩并发送给用户?或者,这需要保存到服务器吗?
感谢您的帮助!
您可以将其作为链接
<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
。
只要您的标题设置正确,这将下载文件。