是否可以创建一个强制文件下载并回显字符串的PHP页面?

时间:2016-08-15 06:58:06

标签: php echo force-download

<?php
include "function.php";

$account = findSomeFile();
$file_url = '/var/www/html/tvconfig/netflix/'.$account.'.zip';
echo $account;

header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url);

?>

以上是我的PHP脚本。当我加载页面时,我在浏览器中获得了下载提示,但页面上没有回显。我已尝试在readfile函数之后放置echo但它不起作用。

1 个答案:

答案 0 :(得分:2)

你可以玩一个小技巧:

<?php
$account = "38950596";
$file_url = "$account.json";
echo "Hello Friend!\n";

$fc = file_get_contents($file_url);
?>
<script type="text/javascript">
window.onload = function(e) {
    var pom = document.createElement('a');
    pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent('<?php echo $fc ?>'));
    pom.setAttribute('download', '<?php echo $account ?>');
    pom.click();
}
</script>

这将创建一个锚元素,一旦页面加载,它将通过使用click事件强制下载文件。

演示:http://main.xfiddle.com/e1a35f80/38950596_stackoverflow.php