如何使用php从javascript触发文件下载

时间:2016-08-13 21:10:44

标签: javascript php jquery ajax download

我使用How to force file download with PHP

中的代码
<?php

require('Service.php');
$service = new Service('config.json', getcwd() . '/..');
if ($service->valid_token($_GET['token']) && isset($_GET['filename'])) {
    header('Content-Type: application/octet-stream');
    header("Content-Transfer-Encoding: Binary");
    header("Content-disposition: attachment; filename=\"" . basename($_GET['filename']) . "\"");
    readfile($_GET['filename']); // do the double-download-dance (dirty but worky)
}

?>

使用jQuery get

从javascript调用它
var filename = cwd + '/' + cmd.args[0];
$.get('lib/download.php', {filename: filename, token: token}, function(response) {
    console.log(response);
});

但未下载该文件。我只得到正常的ajax响应。如何使用javascript下载文件?我需要php脚本,因为我想下载php文件或cgi脚本。

1 个答案:

答案 0 :(得分:0)

你不能用ajax做到这一点。您可以在新窗口中打开指向脚本的表单,并在下载完成后将其关闭。

甚至可以使用window.location和javascript在新窗口中打开脚本。