création fichier texte avec choix du dossier par l'utilisateur

création fichier texte avec choix du dossier par l'utilisateur - PHP - Programmation

Marsh Posté le 17-03-2006 à 11:33:29    

Yop, voila le sujet :  
je suis en train de programmer une application web qui comprend des bases de données, et en fait j'ai un bouton qui éxécute un script qui va prendre chaque ligne d'un table en particulier dans la base et la copier dans un fichier texte. Jusque là pas de problème, seulement je voudrais juste que l'utilisateur choisisse le dossier d'enregistrement du fichier texte, et sans erreur.
 
Est-il possible en html ou meme php voire js d'ouvrir l'arborescence des dossier pour que l'utilisateur fasse son choix dedans ?
 
Merci d'avance.

Reply

Marsh Posté le 17-03-2006 à 11:33:29   

Reply

Marsh Posté le 17-03-2006 à 11:39:49    

Oui c'est tout à fait possible mais va falloir que tu liste le tout soit dynamiquement avec un script php ou alors manuellement.


Message édité par dwogsi le 17-03-2006 à 11:52:01
Reply

Marsh Posté le 17-03-2006 à 11:42:20    

Bah c'est mieux si c'est dynamique, mais comment je fais ?

Reply

Marsh Posté le 17-03-2006 à 11:51:51    

opendir()
readdir()
is_dir()
etc...

Reply

Marsh Posté le 17-03-2006 à 11:53:18    

Alors, je suis pas sur de moi mais logiquement:
- le php est exécuté sur le serveur, donc il ne peut pas connaitre l'arborescnece du client.
- voir donc avec des scripts javascript.

Reply

Marsh Posté le 17-03-2006 à 11:54:54    

Exact Durkheim, jy avais pas pensé tiens...
Bon ben je vais poster dans la bonne catégorie, merci :)

Reply

Marsh Posté le 17-03-2006 à 11:55:31    

durkheim a écrit :

Alors, je suis pas sur de moi mais logiquement:
- le php est exécuté sur le serveur, donc il ne peut pas connaitre l'arborescnece du client.
- voir donc avec des scripts javascript.


Tu as tout à fait raison, mais compte tenu du fait que nous sommes dans le forum PHP je part du principe qu'on fait ce que peut faire PHP.
 
Autrement dit je pensais à un enregistrement sur le serveur.
 
Ensuite si ce n'est pas ce qu'il souhaitait faire alors qu'il aille relir la doc!
 

Yertle a écrit :

Exact Durkheim, jy avais pas pensé tiens...
Bon ben je vais poster dans la bonne catégorie, merci :)


 
Et tu pouvais pas préciser que c'était du côté client???


Message édité par dwogsi le 17-03-2006 à 11:56:28
Reply

Marsh Posté le 17-03-2006 à 11:57:44    

J'ai pas besoin de post agressifs de gens non compréhensifs, mais merci qd même pour ton intérêt dwogsi.

Reply

Marsh Posté le 17-03-2006 à 17:28:13    

Il me semble (confirmation ?) qu'un script JS ne peut pas accéder comme ça à l'arborescence de ton disque dur, ça me semblerait trop limite niveau sécu. Je me dirigerais plutôt vers une applet Java (même problème peut-être ?) ou un controle activeX qui lui pourra accéder aux ressources sytèmes du client...
Désolé c'est que des pistes j'ai jamais eu à faire de trucs comme ça, mais peut-être à explorer de ton côté...

Reply

Marsh Posté le 17-03-2006 à 18:48:46    

gooopil a écrit :

Il me semble (confirmation ?) qu'un script JS ne peut pas accéder comme ça à l'arborescence de ton disque dur, ça me semblerait trop limite niveau sécu. Je me dirigerais plutôt vers une applet Java (même problème peut-être ?)


en effet, encore heureux que le browser ne puisse pas faire n'importe quoi
 

Citation :

ou un controle activeX qui lui pourra accéder aux ressources sytèmes du client...


C'est possible si le controle est signé/authentifié (un truc de ce genre si je me souviens bien), et ça ne fonctionnera que dans MSIE

Citation :


Désolé c'est que des pistes j'ai jamais eu à faire de trucs comme ça, mais peut-être à explorer de ton côté...


 
La manière de procéder :  
Afficher un message "enregistrer le fichier" et envoyer le fichier en téléchargement. C'est tout simple

Reply

Marsh Posté le 17-03-2006 à 18:48:46   

Reply

Marsh Posté le 17-03-2006 à 19:57:10    

Code :
  1. header("Content-Type: application/octet-stream" );


 
devrai fonctionner avec les versions récentes des navigateurs.

Reply

Marsh Posté le 17-03-2006 à 20:09:27    

sinon, avec un fichier .htacess dans le répertoire où se siyue le .txt, quelquechose comme:

Code :
  1. <Location fichier.txt>
  2. ForceType application/octet-stream
  3. </Location>


 
Mais c est plus joli de laisser PHP traiter la BDD à la volée:

Code :
  1. <Files fichier.txt>
  2.         SetHandler php
  3. </Files>


 
Forcera apache à considérer le fichier comme un script PHP. Ce script envoie un header application/octet-stream et extrait de la BDD ce qu il faut pour constituer le fichier texte. L  utilisateur se voit proposer de sauvegarder le ficher.txt, sans qu aucun fichier ne soit enregistré côté serveur.

Reply

Marsh Posté le 17-03-2006 à 20:25:57    

smaragdus a écrit :


La manière de procéder :  
Afficher un message "enregistrer le fichier" et envoyer le fichier en téléchargement. C'est tout simple


 
Ah ben oui entièrement d'accord, j'avais juste l'impression qu'il voulait pas ça justement

Reply

Marsh Posté le 20-03-2006 à 14:49:17    

Merci pour votre attention et votre aide, j'ai trouvé une solution à mon problème.
J'explique :
mon application permet de générer un fichier texte résumant la base de données, et je voulais que l'utilisateur enregistre ce fichier dans le dossier qu'il aurait choisi, seulement je viens d'y penser, je ne peux pas générer un fichier sur le poste client, il sera généré uniquement sur le serveur, et donc l'utilisateur pourra le télécharger, il me suffit donc d'afficher un lien vers le fichier après sa génération.
 
C'est donc exactement ce que me disais Smaragdus, bien vu !
Voila voila...


Message édité par Yertle le 20-03-2006 à 14:50:16
Reply

Marsh Posté le 20-03-2006 à 15:17:11    

> c est plus joli de laisser PHP traiter la BDD à la volée
ça évite surtout de créer des fichiers temporaires sur le serveur.

Reply

Marsh Posté le 20-03-2006 à 15:29:53    

errata: c est pas sethandler mais encore forcetype pour le htaccess. un code qui fonctionne:
 
fichier ``test.txt``:

Code :
  1. <?
  2. header("Content-Type: application/octet-stream" );
  3. echo "hello".rand();
  4. ?>


 
fichier ``.htaccess``:

Code :
  1. <Files test.txt>
  2.   ForceType application/x-httpd-php
  3. </Files>


 
fichier ``telecharge.php``:

Code :
  1. <html><body>
  2. <a href="test.txt">Cliquez ici</a> pour télécharger au format texte.
  3. </body></html>


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed