我有一个由表单写入的文件 index2.php 。
这个文件的全部内容,我使用输出缓冲区存储在变量$final_code
中。
我现在希望在页面末尾添加一个“下载”按钮,这会打开一个“另存为”对话框,允许用户将此文件的源代码(即变量)保存为.txt - 但是我我很难过。
index2.php:
<?php
// Start buffering the output
ob_start();
?>
<!-- INDEX2.PHP HTML ELEMENTS HERE -->
<?php
// Store the contents of the buffer
$final_code = ob_get_contents();
// Print the contents of the buffer
ob_end_flush();
?>
<form action="savefile.php" method="post">
Happy? Save this to file: <input type="submit" name="savefile" value="Save" />
</form>
我不确定是否需要将此文件用于此文件或 savefile.php ,因此后者目前是空白的。
答案 0 :(得分:4)
我认为您无法在浏览器中强制另存为文件对话框。
强制下载txt文件我执行以下操作:
header('Pragma: anytextexeptno-cache', true);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename=\"example.txt\"");
echo $output;
希望有所帮助。
答案 1 :(得分:1)
您需要使用标头强行下载:
$file = 'somefile.zip';
if(!file)
{
// File doesn't exist, output error
die('file not found');
}
else
{
// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
// Read the file from disk
readfile($file);
}
示例来自: http://www.ryboe.com/tutorials/php-headers-force-download
有关详细说明,请参阅链接。
答案 2 :(得分:0)
您是否正在寻找PHP下载脚本(来自浏览器)?