【发布时间】:2010-09-10 13:22:15
【问题描述】:
我想在 PHP 中“强制”下载纯文本文件。
我有以下代码,我在网上某处找到的:
if (isset($_REQUEST["file"])) {
$file=$_REQUEST["file"];
header("Content-type: application/force-download");
header("Content-Transfer-Encoding: ansi");
header("Content-length: ".filesize($file));
header("Content-disposition: attachment; filename=".basename($file));
echo @fileread("$file");
}
else
{
echo "No file selected";
}
这似乎工作正常,但是当使用记事本在 Windows 中打开文件时,不会保留行尾。谁能提供一个解决方案(文本文件必须用记事本创建)?
谢谢,里奇
【问题讨论】:
-
Windows 的
notepad很糟糕。使用其他任何东西,例如Wordpad。Notepad总是有这个问题。 -
如果您在记事本中查看文件而不先通过 PHP 脚本下载文件,文件是否显示正常?
-
抱歉代码 - 它应该读取二进制而不是 ansi,我只是在搞乱并复制代码而没有改回来。与 readfile() 的拼写错误相同。
-
文件在记事本中创建;因此在记事本中工作正常。它在 Save as... 对话框中使用 ANSI 编码。我无法控制我的用户阅读文件时使用的文本编辑器——他们中的大多数人不知道什么是 wordpad/textpad 等。