我想通过Php在服务器中编写一个文本文件,让客户端下载该文件。
我该怎么做?
本质上,客户端应该能够从服务器下载文件。
答案 0 :(得分:14)
除了已发布的数据外,您还可以尝试使用标头。
它只是一个建议如何处理它,用户代理可以选择忽略它,如果知道如何,只需在窗口中显示该文件:
<?php
header('Content-Type: text/plain'); # its a text file
header('Content-Disposition: attachment'); # hit to trigger external mechanisms instead of inbuilt
有关Content-Disposition标题的详情,请参阅Rfc2183。
答案 1 :(得分:12)
这是最好的方法,假设您不希望用户看到该文件的真实URL。
<?php
$filename="download.txt";
header("Content-disposition: attachment;filename=$filename");
readfile($filename);
?>
此外,您可以使用mod_access保护文件。
答案 2 :(得分:4)
PHP有许多非常简单的,类似于C的函数,用于写入文件。这是一个简单的例子:
<?php
// first parameter is the filename
//second parameter is the modifier: r=read, w=write, a=append
$handle = fopen("logs/thisFile.txt", "w");
$myContent = "This is my awesome string!";
// actually write the file contents
fwrite($handle, $myContent);
// close the file pointer
fclose($handle);
?>
这是一个非常基本的例子,但你可以在这里找到更多对这种操作的引用:
答案 3 :(得分:2)
只需将网站上的链接发布到http://example.com/textfile.php
即可在该PHP文件中,您输入以下代码:
<?php
header('Content-Type: text/plain');
print "The output text";
?>
这样你可以创建动态内容(来自数据库)...... 如果此内容不是您要查找的内容,请尝试使用“内容类型”。
答案 4 :(得分:2)
如果您将内容类型设置为application / octet-stream,浏览器将始终提供文件作为下载,并且永远不会尝试在内部显示它,无论它是什么类型的文件。
<?php
filename="download.txt";
header("Content-type: application/octet-stream");
header("Content-disposition: attachment;filename=$filename");
// output file content here
?>