我在php函数中使用window.location.href,强制下载文件而不打开其他窗口。文件下载工作,其余的PHP脚本执行。但是,我在函数中使用javascript后输出的内容都不会显示在iframe中。有没有办法将输出重定向回原始的PHP脚本?
这是php文件中的javascript行:
echo "<script>window.location.href='download.php';</script>";
以下是download.php的代码:
<?php
session_start(); // Starts new or resumes existing session
$filename = $_SESSION['filename']; // Creates variable from session variable
header("Content-Type: text/plain"); // Output text file
header("Content-Disposition: attachment; filename=$filename"); // Output file name
readfile($filename); // Outputs the text file
?>
这是php文件中某些内容的示例,它不会在javascript行之后输出到iframe:
echo 'Test Output';
提前致谢,
杰
修改
我用以下内容替换了javascript行,它完美无缺:
echo "<iframe id='my_iframe' style='display:none;' src='download.php'></iframe>";
答案 0 :(得分:1)
您无需将重定向放在iframe页面中。
我能想到的最好的方法是使用Andrew Dunn对此question
的回答中提到的隐形框架引用该答案:
<iframe id="my_iframe" style="display:none;"></iframe>
<script>
function Download(url) {
document.getElementById('my_iframe').src = url;
};
</script>
在主页内有这个。 url基本上是下载URL(在你的情况下是“download.php”)。您可以使用按钮制作下载手册。如果你想要它被迫。将src = url添加到iframe并删除脚本。
我建议研究和使用jQuery。