:-)
我有一台运行 Ubuntu Server 14.04 的服务器,上面运行着 apache2 网络服务器。我想为我和几个朋友建立一个个人网站,用于托管一些文件。我创建了该网站,一切运行顺利。为了测试文件托管,我在 /var/www/html 目录中创建了一个“test.txt”文件,并在页面上创建了指向该文件的链接。在文件中,我有以下字符串:
This is a test file.
但是,当我在电脑上单击浏览器中的链接时,文件并没有下载,而是出现在浏览器中的字符串“这是一个测试文件。”。在多个浏览器上进行了测试。有什么建议吗?我对网站托管还很陌生……我是不是忘了什么?提前谢谢。
-瑞安
答案1
您可以通过让 Apache 报告其内容类型为application/octet-stream
而不是通常的 来强制下载它text/html
。我不建议对.txt
文件执行此操作。在您的.htaccess
(或其他 Apache 配置文件)中添加:
AddType application/octect-stream .txt
另一种方法是在或块ForceType
内使用,如Files
Directory
这个答案:
<Files *.mp4> ForceType application/octet-stream Header set Content-Disposition attachment </Files>
其优点是Files
块的匹配标准比平原的匹配标准更灵活AddType
。
答案2
文本文件可以被 apache 读取并显示,但是您仍然可以使用浏览器保存该文件。
再试一次,使用另一个结尾,例如text.zip
。甚至不需要是真正的 zip,更改结尾会改变行为。
个人说明:如果这些文件不对外公开,请务必使用 .htaccess 和用户/密码组合来保护您的服务器!
答案3
如果您需要将简单文本文件推送到浏览器中的客户端,则必须使用 php 之类的程序并index.php
在根目录:/var/www/html 目录中创建一些文件,并添加如下内容:
<?php
$file = 'test.txt';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
?>
恐怕您必须先在 apache 上安装 php 才能使用该代码。
我用谷歌搜索了一下,结果是这样的 ->sudo apt-get install php5
祝你好运,如果成功的话请告诉我。
钾