:-)
Ubuntu Server 14.04を実行しているサーバーがあり、Apache2 Webサーバーが実行されています。私と数人の友人がいくつかのファイルをホストするための個人的なウェブサイトが欲しいです。私はウェブサイトを作成し、すべてがスムーズに実行されています。ファイルホスティングをテストするために、/ var/www/htmlディレクトリに「test.txt」ファイルを作成し、ページにファイルへのリンクを作成しました。ファイルには、次の文字列が含まれていました。
This is a test file.
しかし、コンピューターのブラウザーでリンクをクリックすると、ファイルをダウンロードする代わりに、「これはテストファイルです」という文字列が表示されます。ブラウザに表示されます。複数のブラウザーでテスト済み。助言がありますか?ウェブサイトのホスティングは初めてです...忘れたことはありますか?前もって感謝します。
-ライアン
Apacheに、通常のapplication/octet-stream
の代わりにtext/html
のコンテンツタイプであると報告させることにより、ダウンロードを強制できます。これは、.txt
ファイルに対して行うことをお勧めするものではありません。 .htaccess
(または他のApache構成ファイル)に以下を追加します。
AddType application/octect-stream .txt
別のアプローチは、 this SO answer で概説されているように、ForceType
またはFiles
ブロック内でDirectory
を使用することです。
<Files *.mp4> ForceType application/octet-stream Header set Content-Disposition attachment </Files>
利点は、Files
ブロックの一致基準が、単純なAddType
の一致基準よりも柔軟であることです。
テキストファイルはApacheによって読み取られ、読み取られて表示されますが、ブラウザでファイルを保存することはできます。
text.Zip
のような別のエンディングでもう一度やり直してください。実際のZipである必要はありません。末尾を変更すると動作が変わります。
個人的な注意事項:これらのファイルが一般向けでない場合は、.htaccessとユーザー/パスワードの組み合わせでサーバーを保護してください!
単純なテキストであるファイルをブラウザでクライアントにプッシュする必要がある場合は、phpなどを使用してex用に作成する必要があります。ルートの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
頑張って、うまくいったかどうか教えてください。
k