我想对PHP函数进行AJAX调用,创建一个txt文件并下载它。
if (isset($_POST["download_file"]))
{
$filename = "sequence.txt";
$f = fopen($filename, 'w');
$content="q";
fwrite($f, $content);
fclose($f);
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
readfile($filename);
}
这是我的PHP代码,这里是AJAX代码
$.ajax(
{
url:"./apis/download_seq.php",
data:{download_file:"true",sequence:seq},
type: 'POST',
success:function(data){
}
});
这是AJAX调用。问题是我当前的代码将文件保存在服务器上。就像它在我的PHP文件所在的目录中创建sequence.txt文件一样。 我想将它下载到客户端,即我的浏览器。
答案 0 :(得分:1)
我在PHP方面有点不对,但对于PHP方面来说是这样的:
可以跳过此部分:
$f = fopen($filename, 'w');
$content="q";
fwrite($f, $content);
fclose($f);
如果文件不是很大,你可以用简单的变量替换它:
$text = "q";
$text = $text."new text";
最后:
readfile($filename);
替换为:
echo($text);
我没有测试过这个:)所以做一个测试。
对于Jquery部分,那里有很多答案: Download File Using Javascript/jQuery