1

我有一个文件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中工作,所以后者目前是空白的。

4

3 回答 3

5

我认为您不能在浏览器中强制保存为文件对话框。

为了强制下载 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;

希望有帮助。

于 2012-12-12T12:10:58.997 回答
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

请参阅链接以获取更多说明。

于 2012-12-12T12:07:31.123 回答
0

您在寻找 PHP 下载脚本(来自浏览器)吗?

于 2012-12-12T12:03:28.210 回答