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.
A voir également:

9 réponses

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
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
step Messages postés 27 Statut Membre
 
Je ne comprends pas comment ca s'integre
0
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
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
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
naeh
 
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
SilvR
 
sinon il suffit de faire un tour sur le manuel de PHP

https://www.php.net/manual/fr/function.readfile.php
0
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 ! !
0
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

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

Posez votre question
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
Bobinours Messages postés 2903 Statut Membre 504
 
C'est trop facile, c'est la meme reponse que pour le fichier DOC ;)))

-= Bobinours =-
0
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
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
Dworf Messages postés 627 Statut Membre 17
 
hein? non le fichier doc on voulait l'ouvrir, pas le télécharger
-4
test
 

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