当前位置: 首页 > 知识库问答 >
问题:

使用php创建、编写和下载txt文件

徐君植
2023-03-14
$file = fopen("test.txt", "w") or die("Unable to open file!");
fwrite($file, "lorem ipsum");
fclose($file);

header("Content-Disposition: attachment; filename=\"" . basename($file) . "\"");
header("Content-Type: application/force-download");
header("Content-Length: " . filesize($file));
header("Connection: close");

文件已创建/打开并写入,但未下载。

有什么帮助吗?

共有3个答案

虞承泽
2023-03-14

创建一个文件后,您应该将其内容输出到浏览器,例如使用fPasstransu,因为您使用文件处理程序:

$path = "test.txt";
$file = fopen($path, "w") or die("Unable to open file!");
fwrite($file, "lorem ipsum");
//fclose($file); // do not close the file
rewind($file);   // reset file pointer so as output file from the beginning

// `basename` and `filesize` accept path to file, not file descriptor
header("Content-Disposition: attachment; filename=\"" . basename($path) . "\"");
header("Content-Type: application/force-download");
header("Content-Length: " . filesize($path));
header("Connection: close");
fpassthru($file);
exit();
松亦
2023-03-14

为了让用户下载文件,您需要输出一些内容。请尝试以下代码:

$file = fopen("test.txt", "w") or die("Unable to open file!");
fwrite($file, "lorem ipsum");
fclose($file);

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="FILENAME"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: test.txt');
ob_clean();
flush();
readfile('text.txt');
exit();

使用您希望用户下载的文件名更改文件名

王德华
2023-03-14

正确的做法是:

<?php

$file = "test.txt";
$txt = fopen($file, "w") or die("Unable to open file!");
fwrite($txt, "lorem ipsum");
fclose($txt);

header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
header("Content-Type: text/plain");
readfile($file);

?>
 类似资料:
  • 问题内容: 我是一个新手程序员,我搜索了很多有关我的问题的内容,但是找不到关于此的有用的解决方案或教程。 我的目标是我有一个PHP数组,并且数组元素显示在页面上的列表中。 我想添加一个选项,以便用户如果需要,他/她可以创建带有数组元素的CSV文件并下载。 我不知道该怎么做。我也搜索了很多。但尚未找到任何有用的资源。 请为我提供一些教程或解决方案或建议以自己实施。由于我是新手,请提供易于实施的解决方

  • 问题内容: 我找不到一种方法可以轻松地让我创建一个新文件,将其视为ini文件(而不是php.ini或类似文件……针对每个用户的单独ini文件),以及使用PHP创建/删除值。PHP似乎没有提供创建ini文件和读取/写入/删除值的简便方法。到目前为止,所有内容都只是“读”的,与创建条目或操作键/值无关。 问题答案: 从PHP文档的注释中找到了以下代码片段: 用法: 祝好运!

  • 问题内容: 当前,当浏览器浏览器浏览到网页时,我正在运行一个php脚本。我想做的是在脚本运行时编写一个存储变量的文本文件。文件夹的所有者是apache,但每个人都具有读写功能,严格出于测试目的。(我认为这可能是权限问题)服务器上启用了SELINUX,当我从控制台运行脚本时,它会在正确的目录中很好地创建文本文件。 我正在使用此行尝试编写和创建文本文件,我知道我的文件位置可以正常运行,因为我可以在脱机

  • 问题内容: 我真的是Python新手。我目前正在研究使用python创建HTML文件的任务。我了解如何将HTML文件读入python,然后进行编辑和保存。 上一部分的问题在于,它只是替换了整个HTML文件并将字符串放入write()中。如何编辑文件,同时保持其内容完整。我的意思是,写这样的东西,但在 体内标签 我需要自动在打开和关闭正文标签之间插入链接。 问题答案: 您可能想阅读Beautiful

  • 问题内容: 我对此并不陌生,我真的对如何下载已经成功上传到本地服务器上的文件一无所知。 我上传的脚本是- 问题答案: SomePage.php download.php

  • 我试图从查询字符串中获取一个变量,并将其写入文本文件。我试过这样做: 我得到以下错误: 警告:fopen(etlLOG.txt)[function.fopen]:无法打开流:在E:\Users\george\listener中的权限被拒绝。php第8行 警告:f写():在第9行的E:\用户\乔治\listener.php中,提供的参数不是有效的流资源 警告:fclose():提供的参数不是E:\U