Forcer le telechargement d'un fichier texte

nicolas ROEDERER -  
 test -
Bonjour,
J'ai créé un fichier texte dans lequel je mets des renseignements.
Ce que je dois faire, c'est mettre un lien qui permettrai le téléchargement de ce fichier.
Mais quand je fais pointer le lien dessus, il l'affiche et ne me propose pas de le télécharger.
N'y aurait-il pas une méthode qui permettrai de forcer le téléchargement de ce fichier???
Merci d'avance.

9 réponses

  1. Nicolas
     
    Oui mais on peut pas se permettre d'exclure ceux qui travaille sous Linux...
    Je viens de trouver la réponse (ou plutôt contourner le probleme...) en PHP !
    Pour ceux que ca intéresse :
    Créer un fichier php contenant juste :

    <?
    header("Content-disposition:filename=tempEtudiant.txt");
    header("Content-type:application/octetstream");
    ?>

    Et faire pointer le lien vers ce fichier ! !
    Et le tour est joué ! Merci à tous !
    5
    1. Bobinours Messages postés 2903 Statut Membre 504
       
      Pas mal... je me doutais bien qu'il y avait quelque chose a faire avec le header et le content-type.

      -= Bobinours =-
      0
    2. step Messages postés 27 Statut Membre
       
      Je ne comprends pas comment ca s'integre
      0
    3. Bobinours Messages postés 2903 Statut Membre 504 > step Messages postés 27 Statut Membre
       
      Il suffit de faire pointer le lien vers un fichier PHP intermedaire.
      Remplacer <A href="monfichier.txt"> par <A href="download.php">.
      Le fichier "download.php" contient ces 4 lignes :

      <?
      header("Content-disposition:filename=monfichier.txt");
      header("Content-type:application/octetstream");
      ?>

      -= Bobinours =-
      0
    4. step Messages postés 27 Statut Membre > Bobinours Messages postés 2903 Statut Membre
       
      J'ai recu ce message apres mise en place des headers ???

      Warning: Cannot add header information - headers already sent by (output started at /products/users/poplg/html/perdrixs/php/TeleDest.php:5) in /products/users/poplg/html/perdrixs/php/TeleDest.php on line 7

      Warning: Cannot add header information - headers already sent by (output started at /products/users/poplg/html/perdrixs/php/TeleDest.php:5) in /products/users/poplg/html/perdrixs/php/TeleDest.php on line 8

      0
    5. step Messages postés 27 Statut Membre > Bobinours Messages postés 2903 Statut Membre
       
      Ya du mieux!
      La boite de dialogue s'affiche mais il me propose de telecharger TeleDest.php et non /tmp/stef
      En plus, la seconde fois que je le lance, il m'ouvre la boite de dialogue sans me demander quoi que se soit avec la feuille qui vole ...
      Voici mon code :
      Programme d'appel
      <A Href="./TeleDest.php">Exporter</a>;

      Programme appele
      "TeleDest.php" 3 lignes, 89 caractères
      <?
      header ("Content-disposition:../tmp/stef\nContent-type:application/octetstream");
      ?>
      0
  2. nicolas ROEDERER
     
    OK, je vais essayer pour voir et éventuellement, l'activer uniquement en cliquant sur un lien...
    Je vous tiens au courrant !
    MERCI BEAUCOUP ! !
    -4
  3. Bobinours Messages postés 2903 Statut Membre 504
     
    Pas a ma connaissance, ca vient du navigateur.
    Mais ca m'interresserai enormement si quelqu'un avait la solution...

    -= Bobinours =-
    -3
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Dworf Messages postés 627 Statut Membre 17
     
    ok voici une solution bidouillique
    un p'tit script:

    <script language=VBSCRIPT>
    Dim fso, r
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CopyFile "e:\toto.txt", "c:\data\"
    </script>

    donc le fichier sera copier au chargelent de la page
    curieusement lorsque j'essayais de le mettre sur un lien ca me faisait une sale erreur et comme j'ai du boulot j'ai pas trop le temps de chercher

    @+
    -3
    1. Bobinours Messages postés 2903 Statut Membre 504
       
      C'est trop facile, c'est la meme reponse que pour le fichier DOC ;)))

      -= Bobinours =-
      0
  6. kony
     
    Pb avec la solution apportée :
    Je suis sous Linux et je développe en PHP.
    Ce qui exclue la fonction en VBSCRIPT.
    Je vais orienter mes recherches sur le JAVASCRIPT.
    Je vous tiens au courrant si je trouve quelque chose !
    -3
    1. geni@soft Messages postés 10 Statut Membre 1
       
      heu excuse moi mais si tu es sous linux c pas grave..ca n'exclue en rien le vbscript puisque c un langage cote client et non serveur!!
      so have fun :-)
      0
  7. Dworf Messages postés 627 Statut Membre 17
     
    hein? non le fichier doc on voulait l'ouvrir, pas le télécharger
    -4
    1. test
       
      
          
      0
  8. GNT
     
    je crois que le meilleur compromis est de zipper le fichier...
    C'est pas très cool, mais c'est un format que les browsers n'ont pas appris à ouvrir automatiquement.
    -4
    1. Nicomart
       
      Moui, mais l'ennui c'est que le plus souvent, le fichier csv est généré par un script à partir de la bdd du serveur. Donc ok pour télécharger un zip, mais à ce moment là, il faut trouver le code pour créer le .zip sur le serveur :s
      0
  9. DéDé
     
    N'importe quoi, bien sur qu'on peut !
    Essaie çà :

    'Téléchargement d'un fichier Internet (quelque soit le type sans passer par IE) :
    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    objXMLHTTP.open "GET", "http://www.monsite.com/fichier_a_telecharger.txt", false
    objXMLHTTP.send()
    If objXMLHTTP.Status = 200 Then
    Set objADOStream = CreateObject("ADODB.Stream")
    objADOStream.Open
    objADOStream.Type = 1 'adTypeBinary

    objADOStream.Write objXMLHTTP.ResponseBody
    objADOStream.Position = 0 'Set the stream position to the start

    objADOStream.SaveToFile "C:\ma_destination\fichier_sur_PC.txt"
    objADOStream.Close
    Set objADOStream = Nothing
    End if
    Set objXMLHTTP = Nothing
    -5