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

How to trigger download of a file using php from javascript

本文关键字:文件下载 javascript 何使用 php      更新时间:2023-09-26

我使用的代码来自如何使用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脚本以及

在ajax中不能这样做。您可以在指向脚本的新窗口中打开表单,并在下载准备好时关闭它。

或者甚至使用window.location与javascript在新窗口中打开脚本