fichier ,serveur , client ??

Eléphant du PHP | 406 Messages

13 juil. 2005, 10:56

salut,

Dans certains de mes formulaires, je peux exporter les donnée de ma base dans un fichier csv.

Le fichier csv est crée au prealable.
Est ce possible de le crée au moment de l exportation comme sa s il n existe pas il n y aura pas d erreur ?

Je boss sur mon pc,donc je suis le serveur, et quand j exporte des fichiers il sont enregistrer dans le repertoire prog2.
Mais quand je mettrai l application sur le serveur web, et qu une personne voudra exporter des données,le fichier csv crée sera enregistrer dans le repertoire prog2 alors.
Je ne me trompe pas ?

Et si c est le cas donc comment je devrais proceder pour que le client enregistre le fichier sur son propre pc ??

Merci

Mammouth du PHP | 1353 Messages

13 juil. 2005, 11:21

Pour être sur que le formulaire a été posté tu peux faire l'exportation en testant la valeur d'une variable de type hidden que tu envoies. Comme ca si cette valeur existe tu sais que le formulaire a été posté.

A ma connaissance il n'existe pas de moyen pour que l'utilisateur puisse enregistrer directement sur son PC (j avais cherché sans succès) mais tu peux en revanche lui proposer un lien pour le télécharger le fichier depuis la base par exemple
<a href="\prog2\base.csv"> telechargez ici </a>

Eléphant du PHP | 406 Messages

13 juil. 2005, 11:46

lui proposer de telecharger le fichier depuis le repertoire qui se trouve son mon serveur
c est sa ?

Mammouth du PHP | 1353 Messages

13 juil. 2005, 13:49

oui je pense puisque le fichier existe dans le serveur tu peux le faire télécharger

Eléphant du PHP | 406 Messages

13 juil. 2005, 14:23

c est null un peu
je pense qu on pouvait faire apparaitre une boite de dialogue pour permettre à la personne d enregistrer le truc sur son propre pc.

Mammouth du PHP | 1353 Messages

13 juil. 2005, 14:39

au final c'est ce qui va se passer c'est juste que il y aura une copie du fichier sur le serveur mais a part ca ce sera une boite de téléchargement normale comme quand tu dl des trucs sur le net....

Désolé c'est la seule solution que j'ai ...

Eléphant du PHP | 406 Messages

13 juil. 2005, 14:42

merci
je vais essayer et je vais voir ce que sa donne

Mammouth du PHP | 983 Messages

13 juil. 2005, 19:13

Tu peux générer le fichier et lui envoyer un header qui lui propose de le télécharger. ;)

Eléphant du PHP | 406 Messages

18 juil. 2005, 08:22

c est possible d ouvrir directement le fichier .?
comme sa l utilisateur le vois et peux faire un enregistrer sous

Mammouth du PHP | 983 Messages

18 juil. 2005, 09:56

Oui, tu construis ton fichier et tu lui envoies un header qui force le téléchargement.
Va voir du côté de la fonction header.

Eléphant du PHP | 406 Messages

18 juil. 2005, 10:52

le header qui force le telechargment se correspond à cela ?
<?php
// Vous voulez afficher un pdf
header('Content-type: application/pdf');

// Il sera nommé downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// Le source du PDF original.pdf
readfile('original.pdf');
?> 
moi ce que j entendais c est qu au moment ou le fichier csv est creer ,on ouvre excel avec le contenu de ce fichier

Mammouth du PHP | 983 Messages

18 juil. 2005, 14:35

Le header c'est ca, sauf qu'il font adapter le content type pour Excel.
Mais avant cela il faut crée le fichier xls qui va bien:
   $fname = tempnam("/tmp", "fichier.xls");
   //tu ecris ici dans ton fichier
  ...

    
    header("Content-Type: application/x-msexcel");
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    $fh=fopen($fname, "rb");
    fpassthru($fh);
    unlink($fname); 

Eléphant du PHP | 406 Messages

19 juil. 2005, 09:47

Et se bout de code je devrais le mettre en haut de ma page qui effectue l exportation vers le fichier csv ?
ou dans le bouton qui fait l exportation ?

Eléphant du PHP | 406 Messages

21 juil. 2005, 10:07

y aurai pas plus simple
le header j ai pas trop capter ce truc

Eléphant du PHP | 406 Messages

22 juil. 2005, 09:48

Je voudrais juste puvoir telecharger le fichier csv sur le pc client

et
Le header c'est ca, sauf qu'il font adapter le content type pour Excel.
Mais avant cela il faut crée le fichier xls qui va bien:
Le client ne dispose pas forcement d excel