我使用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脚本。
答案 0 :(得分:0)
你不能用ajax做到这一点。您可以在新窗口中打开指向脚本的表单,并在下载完成后将其关闭。
甚至可以使用window.location
和javascript在新窗口中打开脚本。