Forcer le telechargement d'un fichier texte

Fermé
nicolas ROEDERER - 4 juil. 2001 à 11:32
 test - 28 sept. 2011 à 09:47
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.
A voir également:

9 réponses

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
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
4 juil. 2001 à 17:06
Pas mal... je me doutais bien qu'il y avait quelque chose a faire avec le header et le content-type.

-= Bobinours =-
0
step Messages postés 27 Date d'inscription vendredi 8 juin 2001 Statut Membre Dernière intervention 10 juillet 2001
6 juil. 2001 à 16:27
Je ne comprends pas comment ca s'integre
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504 > step Messages postés 27 Date d'inscription vendredi 8 juin 2001 Statut Membre Dernière intervention 10 juillet 2001
6 juil. 2001 à 17:54
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
step Messages postés 27 Date d'inscription vendredi 8 juin 2001 Statut Membre Dernière intervention 10 juillet 2001 > Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013
9 juil. 2001 à 08:39
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
step Messages postés 27 Date d'inscription vendredi 8 juin 2001 Statut Membre Dernière intervention 10 juillet 2001 > Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013
9 juil. 2001 à 11:16
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
si tu fais du php cherche pas plus loin ta réponse est ici : http://naeh.net/forcer-le-telechargement-dun-fichier-avec-php/

c'est valable pour tous types de fichiers.
1
sinon il suffit de faire un tour sur le manuel de PHP

https://www.php.net/manual/fr/function.readfile.php
0
nicolas ROEDERER
4 juil. 2001 à 14:11
OK, je vais essayer pour voir et éventuellement, l'activer uniquement en cliquant sur un lien...
Je vous tiens au courrant !
MERCI BEAUCOUP ! !
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
4 juil. 2001 à 12:06
Pas a ma connaissance, ca vient du navigateur.
Mais ca m'interresserai enormement si quelqu'un avait la solution...

-= Bobinours =-
-3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dworf Messages postés 627 Date d'inscription lundi 2 juillet 2001 Statut Membre Dernière intervention 21 novembre 2005 17
4 juil. 2001 à 12:38
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
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
4 juil. 2001 à 12:41
C'est trop facile, c'est la meme reponse que pour le fichier DOC ;)))

-= Bobinours =-
0
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
geni@soft Messages postés 10 Date d'inscription mercredi 21 février 2001 Statut Membre Dernière intervention 4 juillet 2001 1
4 juil. 2001 à 14:33
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
Dworf Messages postés 627 Date d'inscription lundi 2 juillet 2001 Statut Membre Dernière intervention 21 novembre 2005 17
4 juil. 2001 à 12:46
hein? non le fichier doc on voulait l'ouvrir, pas le télécharger
-4

    
0
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
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
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