2011-07-19 3 views
3

Je veux ajouter un lien de téléchargement à ma page html. Le téléchargement sera un fichier .txt. Je l'ai fait,Lien de téléchargement de fichier texte (ruby on rails)

<a href="path_to_file/myfile.txt">click to download txt </a> 

Mais le problème est, lorsqu'un utilisateur clique sur ce lien, au lieu de demander l'utilisateur de télécharger le fichier, il montre simplement le texte dans le navigateur.

Comment puis-je modifier ce script pour demander à l'utilisateur de télécharger le fichier (avec la boîte de dialogue invite de téléchargement par défaut)

MISE À JOUR: Merci à tous pour les réponses. J'utilise ruby ​​/ rails du coté serveur.

+2

Vous devez définir les en-têtes HTTP appropriés, donc vous ne pouvez pas le faire avec du HTML brut. Avez-vous accès à un outil côté serveur pour modifier les en-têtes HTTP, tels que PHP ou les fichiers '.htaccess 'd'Apache? –

+2

Le navigateur affichera le fichier txt par défaut, sauf si vous envoyez un en-tête Content-Disposition: attachment. –

Répondre

0

Est-ce que ne vous oublie pas définir le contenu en-tête wright à côté serveur:

header("Content-Disposition: attachment; filename=\"myfile.txt\""); 
+0

Je trouve dans ruby ​​ce serait #### response.content_disposition = "attachment"; response.filename = "monfichier.txt" #### –

-1

Si votre serveur prend en charge PHP, vous pouvez utiliser ces lignes:

header('Content-type: text/plain'); 
header('Content-disposition: attachment; filename="name.txt"'); 
readfile('name.txt'); 

Voir aussi PHP: header Exemple # 1

0
  1. manière simple - le zip.
  2. est disponible si php
header ('Content-Type: text/html'); 
header ("Content-Disposition: 'attachment'; filename='text.txt'"); 
include ('path_to_file/myfile.txt') 
exit;
0

Vous pouvez le faire dans .htaccess

1. Si vous ne souhaitez que ce fichier spécifique:

<Directory path_to_file> 
    <Files myfile.txt> 
     <IfModule mod_headers.c> 
      ForceType application/octet-stream 
      Header set Content-Disposition attachment 
     </IfModule> 
    </Files> 
</Directory> 

2. Si vous voulez il doit être pour tous les .txt fichiers sous path_to_file

<Directory path_to_file> 
    <FilesMatch “.(?i:(txt))$”> 
     <IfModule mod_headers.c> 
      ForceType application/octet-stream 
      Header set Content-Disposition attachment 
     </IfModule> 
    </FilesMatch> 
</Directory> 
0

Voir: (fichier Html)

= link_to 'cliquer pour télécharger txt',: controller => 'Télécharger',: action => 'test'

Télécharger Controller:

test DEF file_path = 'chemin_du_fichier/myfile.txt' file_path send_file fin