Rechercher : dans
Par :

Forcer le telechargement d'un fichier texte

Dernière réponse le 5 nov 2009 à 15:44:21 nicolas ROEDERER, le 4 jui 2001 à 11:32:39 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « Forcer le telechargement d'un fichier texte » dans :
Extensions de fichiers VoirIntroduction aux fichiers Un fichier est une suite d'informations binaires, c'est-à-dire une suite de 0 et de 1. Ce fichier peut être stocké pour garder une trace de ces informations. Un fichier texte est un fichier composé de caractères stockés...
Fichier TXT VoirFormat TXT Un fichier TXT est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Pour ouvrir ou modifier un tel fichier, il suffit d'utiliser le bloc-notes ou un éditeur de texte traditionnel.

1

Bobinours, le 4 jui 2001 à 12:06:27

Pas a ma connaissance, ca vient du navigateur.
Mais ca m'interresserai enormement si quelqu'un avait la solution...

-= Bobinours =-

Répondre à Bobinours

2

Dworf, le 4 jui 2001 à 12:38:41

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

@+

Répondre à Dworf

3

Bobinours, le 4 jui 2001 à 12:41:16

C'est trop facile, c'est la meme reponse que pour le fichier DOC ;)))

-= Bobinours =-

Répondre à Bobinours

4

Dworf, le 4 jui 2001 à 12:46:17

Hein? non le fichier doc on voulait l'ouvrir, pas le télécharger

Répondre à Dworf

5

nicolas ROEDERER, le 4 jui 2001 à 14:11:54

OK, je vais essayer pour voir et éventuellement, l'activer uniquement en cliquant sur un lien...
Je vous tiens au courrant !
MERCI BEAUCOUP ! !

Répondre à nicolas ROEDERER

6

kony, le 4 jui 2001 à 14:26:05

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 !

Répondre à kony

7

geni@soft, le 4 jui 2001 à 14:33:50

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 :-)

Répondre à geni@soft

8

Nicolas, le 4 jui 2001 à 14:51:27

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 !

Répondre à Nicolas

10

Bobinours, le 4 jui 2001 à 17:06:12

Pas mal... je me doutais bien qu'il y avait quelque chose a faire avec le header et le content-type.

-= Bobinours =-

Répondre à Bobinours

11

step, le 6 jui 2001 à 16:27:39

Je ne comprends pas comment ca s'integre

Répondre à step

12

Bobinours, le 6 jui 2001 à 17:54:00

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

Répondre à Bobinours

13

step, le 9 jui 2001 à 08:39:04

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

Répondre à step

14

step, le 9 jui 2001 à 11:16:44

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");
?>

Répondre à step

15

Jeff, le 9 jui 2001 à 20:11:33
  • +3

Essayes ça, c'est un petit bout de code que j'ai écrit mais c'est pas encore parfait ... :

<?
header("Content-disposition: filename=$location");
header("Content-type: application/octetstream");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");

$url = urldecode($location);


$fn = fopen("$location","r");
fpassthru($fn);
fclose($fn);
?>

Répondre à Jeff

16

step, le 10 jui 2001 à 08:33:22

J'avais cru comprendre que les Header permettaient de creer le fichier sur le browser en dynamique .
Voici la derniere version de mon code . elle marche sur Netscape4 mais sur IE5 c'est un peu aleatoire ...

<?
header("Content-disposition: attachment; filename=$NomFicCsv");
header("Content-type: application/octetstream");
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Length: ".$file_length);
$Tabf = file($NomFic);
//Creation du fichier Format csv sans les accents
for ($Index=0;$Index < count($Tabf);$Index ++)
{
//---------------------------
// Traitement des accents et # / ;
//--------------------------
$trans = get_html_translation_table (HTML_ENTITIES);
$trans = array_flip ($trans);
$Lig = strtr ($Tabf[$Index], $trans);
echo $Lig;
}
?>

Répondre à step

17

Jeff, le 10 jui 2001 à 10:28:01

Que veux-tu exactement faire Step ? Tu veux envoyer un fichier CSV au navigateur, sans qu'il l'affiche directement, c'est ça ?

Répondre à Jeff

19

step, le 10 jui 2001 à 10:40:07

Oui c'est ca.
Au depart , je voulais simplement permettre a l'utilisateur de telecharger un fichier csv.
Et j'ai vu cette solution qui me parait bien.
Par contre, le pb c'est que sur IE 5.5, ca marche pas tout le temps.

1er ecran : You have chose to download .... toto.csv to (c'est ok)
2eme ecran: il me propose le nom du programme php et p

Répondre à step

18

Jeff, le 10 jui 2001 à 10:28:16

Que veux-tu exactement faire Step ? Tu veux envoyer un fichier CSV au navigateur, sans qu'il l'affiche directement, c'est ça ?

Répondre à Jeff

20

step, le 10 jui 2001 à 11:34:40

YES

Répondre à step

9

GNT, le 4 jui 2001 à 16:13:44

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.

Répondre à GNT

21

Nicomart, le 24 jui 2007 à 17:05:24
  • +1

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

Répondre à Nicomart

22

DéDé, le 5 nov 2008 à 20:45:19

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

Répondre à DéDé

23

naeh, le 8 mai 2009 à 18:28:09

Si tu fais du php cherche pas plus loin ta réponse est ici : http://naeh.net/forcer-le-telechargement-dun-fichier-avec-ph­p/

c'est valable pour tous types de fichiers.

Répondre à naeh

24

 SilvR, le 5 nov 2009 à 15:44:21

Sinon il suffit de faire un tour sur le manuel de PHP

http://php.net/manual/fr/function.readfile.php

Répondre à SilvR
Collection CommentÇaMarche.net