:-)
J'ai un serveur sous Ubuntu Server 14.04 et le serveur Web Apache2 s'exécute sur celui-ci. J'aimerais avoir un site Web personnel pour moi et quelques amis pour héberger quelques fichiers. J'ai créé le site et tout se passe bien. Pour tester l'hébergement de fichiers, j'ai créé un fichier "test.txt" dans le répertoire/var/www/html et créé un lien sur la page du fichier. Dans le fichier, j'avais cette chaîne:
This is a test file.
Lorsque je clique sur le lien de mon navigateur sur mon ordinateur, toutefois, au lieu du téléchargement du fichier, la chaîne "Ceci est un fichier de test". apparaît dans mon navigateur. Testé sur plusieurs navigateurs. Aucune suggestion? Je suis très nouveau dans l'hébergement de sites Web ... y a-t-il quelque chose que j'ai oublié? Merci d'avance.
-Ryan
Vous pouvez le forcer à télécharger en indiquant à Apache que son type de contenu est application/octet-stream
, au lieu du text/html
habituel. Ce n'est pas quelque chose que je recommanderais de faire aux fichiers .txt
. Dans votre .htaccess
(ou d'autres fichiers de configuration Apache), ajoutez:
AddType application/octect-stream .txt
Une autre approche consiste à utiliser ForceType
dans un bloc Files
ou Directory
name__, comme indiqué dans this SO answer :
<Files *.mp4> ForceType application/octet-stream Header set Content-Disposition attachment </Files>
L'avantage est que le critère de correspondance pour un bloc Files
est plus flexible que celui d'un simple AddType
name__.
Un fichier texte peut être lu par Apache et sera lu et affiché par celui-ci. Vous pouvez néanmoins enregistrer le fichier avec le navigateur.
Réessayez, avec une autre fin comme text.Zip
. N’ayant même pas besoin d’être un vrai Zip, changer de fin changera le comportement.
Sur une note personnelle: Assurez-vous de sécuriser votre serveur avec .htaccess et une combinaison utilisateur/mot de passe si ces fichiers ne sont pas destinés au public!
si vous avez besoin d'un fichier texte qui est un simple texte envoyé au client dans le navigateur, vous devez utiliser quelque chose comme php et en créer un pour ex. index.php
dans le répertoire racine:/var/www/html et ajoutez quelque chose comme ceci:
<?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;
}
?>
Je pense que vous devrez d'abord installer php sur votre Apache pour pouvoir utiliser le code correspondant.
Je l'ai google-ed et c'est quelque chose comme ça -> Sudo apt-get install php5
Bonne chance, et laissez-moi savoir si cela a fonctionné ..
k