我提前为令人困惑的问题措辞表示歉意,但我不知道如何表达。
我本质上在数据库中有一个字符串,我打算将其提供给用户下载。我该怎么做呢?
我试图使用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)
如需更多信息,我有一个元素列表:
John
Jeff
Joe
Jack
单击其中一个时,我想将该元素名称的文本发送到 php 文件以形成查询。
这就是为什么我没有简单的 href 设置来开始文件下载。
EDIT:
当我这样做时,无论如何我是否可以获得多个这些文件,比如说从数据库返回多个字符串,将它们保存为单独的文本文件,将它们压缩,然后将它们发送给用户?或者,这需要保存到服务器吗?
任何帮助表示赞赏!
你可以把它设为一个链接
<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
to a $_GET
.
只要您的标头设置正确,这就会下载该文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)