Ecrire un fichier sur le disque dur du client... [PHP] - PHP - Programmation
Marsh Posté le 16-09-2002 à 09:48:48
pas possible
à moins peut-être de passer par une applet java mais j'en doute
sinon avec du VBScript ou de l'ActiveX ça doit être possible...
Marsh Posté le 16-09-2002 à 09:52:29
antp a écrit a écrit : pas possible à moins peut-être de passer par une applet java mais j'en doute sinon avec du VBScript ou de l'ActiveX ça doit être possible... |
Une question comme ça : ça marche sur quels navigateurs VbScript (côté client, pas en ASP ) ?
Marsh Posté le 16-09-2002 à 09:55:03
VBScript client ça marche qu'avec IE (tout comme les ActiveX)
je pense qu'y a déjà ça avec IE 4, mais je pense pas que ce soit d'office installé sur tous les IE, surtout dans les versions récentes (ça fait un peu faille de sécu)
Marsh Posté le 16-09-2002 à 09:57:07
java ne permait pas d'écriture sur le disque d'après ses spécifications... d'après ce que j'en sais.
fait un activeX en VB ou en C++ !
en jscript ou en vbscript, ça va être dur, car il faut que l'interpréteur soit explorer et pas internet explorer, car justement la principale différence entre ces deux interpréteur, est que seul l'explorateur windows permet des écritures sur le HD !
Marsh Posté le 16-09-2002 à 10:00:58
antp a écrit a écrit : VBScript client ça marche qu'avec IE (tout comme les ActiveX) je pense qu'y a déjà ça avec IE 4, mais je pense pas que ce soit d'office installé sur tous les IE, surtout dans les versions récentes (ça fait un peu faille de sécu) |
Donc vaut mieux éviter
Marsh Posté le 16-09-2002 à 10:02:33
tharkie a écrit a écrit : fait un activeX en VB ou en C++ ! |
ou en Pascal (Delphi)
Marsh Posté le 16-09-2002 à 10:04:13
euh...
je peux pas tout connaitre
Marsh Posté le 16-09-2002 à 12:01:21
Toucouch a écrit a écrit : A priori, je pense connaître la réponse à ma question, mais à tout hasard, connaissez-vous un moyen d'enregistrer un fichier sur le disque dur du client? En deux mots, ce que je cherche à faire, c'est faire une sauvegarde de la base de données d'un site de la façon la plus simple possible pour l'utilisateur (supposé non-informaticien): en gros, il clique sur le bouton "Sauvegarder" et un fichier .sql est créé sur son poste à un endroit donné. Possible, pas possible? Merci d'avance pour vos réponses. |
la preuve que c'est possible, c'est ce que fait phpmyadmin quand on lui précise les bonnes options.
Après, pour faire pareil, faut y passer un petit moment, et ne pas avoir peur de chercher les bonnes fonctions.
En tout cas, la preuve existe que c'est fesable.
le seul problème, c'est pour l'enregistrement du fichier à un endroit aprticulier du disque. Avec la méthode du tout php, tu pouras pas forcer l'enregistrement dans un répertoire donné, c'est l'utilisateur qui choisira. (est ce vraiment un problème?)
Marsh Posté le 16-09-2002 à 12:02:45
elle est bien bonne
sacré omega2
Marsh Posté le 16-09-2002 à 12:03:01
bon sinon tu peux tjs le faire envoyer par mail ton fichier
Marsh Posté le 16-09-2002 à 12:09:46
c'est pas très con à faire, il "suffit" de créer le fichier .sql et de rediriger vers le fichier ave l'entête HTTP approprié le téléchargement sera proposé par défaut.
--greg-- > je oivs pas ce qu'il y a de drôle, effectivement phpmyadmin le fait
Marsh Posté le 16-09-2002 à 12:09:47
omega2 a écrit a écrit : la preuve que c'est possible [...] tu pouras pas forcer l'enregistrement dans un répertoire donné, c'est l'utilisateur qui choisira |
... la preuve que c'est pas possible donc
Marsh Posté le 16-09-2002 à 12:10:30
Sh@rdar a écrit a écrit : c'est pas très con à faire, il "suffit" de créer le fichier .sql et de rediriger vers le fichier ave l'entête HTTP approprié le téléchargement sera proposé par défaut. --greg-- > je oivs pas ce qu'il y a de drôle, effectivement phpmyadmin le fait |
oui mais le gars aura une fenêtre d'enregistrement, ici la question c'était comme balancer un fichier dans le disque sans que le client n'ait rien à faire (à ce que j'ai compris-
Marsh Posté le 16-09-2002 à 12:12:28
antp a écrit a écrit : oui mais le gars aura une fenêtre d'enregistrement, ici la question c'était comme balancer un fichier dans le disque sans que le client n'ait rien à faire (à ce que j'ai compris- |
merci antp.
Marsh Posté le 16-09-2002 à 12:13:30
vous pinaillez les gars
Marsh Posté le 16-09-2002 à 12:15:32
tharkie a écrit a écrit : java ne permait pas d'écriture sur le disque d'après ses spécifications... d'après ce que j'en sais. fait un activeX en VB ou en C++ ! en jscript ou en vbscript, ça va être dur, car il faut que l'interpréteur soit explorer et pas internet explorer, car justement la principale différence entre ces deux interpréteur, est que seul l'explorateur windows permet des écritures sur le HD ! |
Java autorise ce type de manipulation, néanmoins une fenêtre de sécurité obligatoire demandant à l'utilisateur de confirmer doit apparaître.
Marsh Posté le 16-09-2002 à 12:16:15
Sh@rdar a écrit a écrit : vous pinaillez les gars |
bah ça fait une différence énorme
Marsh Posté le 16-09-2002 à 12:28:12
antp a écrit a écrit : oui mais le gars aura une fenêtre d'enregistrement, ici la question c'était comme balancer un fichier dans le disque sans que le client n'ait rien à faire (à ce que j'ai compris- |
Exactement, je voulais faire le système le plus transparent possible pour l'utilisateur final et éviter de le faire flipper avec des fenêtres du genre "Je sais pas quoi foutre de ton fichier, veux-tu l'enregistrer sur ton disque?".
Bon, ben, je crois que je vais me contenter de ça...
Code :
|
Encore une question en passant... A priori, il n'existe pas de type MIME pour désigner un fichier SQL. J'ai pris la liberté de mettre "text/sql", c'est un peu cavalier, non? Est-ce-que ça pourrait poser un quelconque problème quelque part? Dois-je me rabattre sur un type du genre "text/plain"?
Votre avis?
Marsh Posté le 16-09-2002 à 12:31:32
antp a écrit a écrit : ... la preuve que c'est pas possible donc |
Bah, s'il préfaire utiliser un langage conus par un seul navigateur, que pas grand monde utilise avec en plus le risque que ca détruise windows à la suite d'une malencontreuse erreur de programmation (ha bon, j'ai remplacé un fichier système par des requêtes sql ???)ou qu'il soit bloqué par les options de sécurité du dit navigateur , libre à lui.
Moi, je lui fait par d'une solution pas très compliqué, qui marchera sur la pluspart des hébergeurs, qui est sécurisé aussi bien pour l'utilisateur que pour le serveur et qui même si elle ne coresponds pas à 100% avec sa demande en couvre quasiment tout. Alors si t'as mieux, dit le, ensuite, il comparerat mais ca m'étonerais que tu puisses proposer quelque chôse de sécurisé qui réponde exactement à sa demande, alors tes sarcasmes, tu peux repartir les déverser dans blabla.
Marsh Posté le 16-09-2002 à 12:31:58
Toucouch a écrit a écrit :
|
avec text il risque pas d'essayer de l'afficher plutôt que de le sauver ?
Marsh Posté le 16-09-2002 à 12:33:02
omega2 a écrit a écrit : Alors si t'as mieux, dit le, ensuite, il comparerat mais ca m'étonerais que tu puisses proposer quelque chôse de sécurisé qui réponde exactement à sa demande, alors tes sarcasmes, tu peux repartir les déverser dans blabla. |
t'as avalé ton petit déjeuné de travers ce matin ou quoi ?
Marsh Posté le 16-09-2002 à 12:33:31
Toucouch a écrit a écrit : Exactement, je voulais faire le système le plus transparent possible pour l'utilisateur final et éviter de le faire flipper avec des fenêtres du genre "Je sais pas quoi foutre de ton fichier, veux-tu l'enregistrer sur ton disque?". Bon, ben, je crois que je vais me contenter de ça...
|
Mieux vaut un text/sql qu'un text plain.
Si le navigateur ne reconait pas ce type mime, il proposera de le sauvegarder, tantdis qu'avec un text/plain, il y a de grosse chance qu'il le reconaisse et qu'il l'ouvre desuite dans le navigateurn plustôt que de le sauvegarder.
Marsh Posté le 16-09-2002 à 12:43:28
antp a écrit a écrit : avec text il risque pas d'essayer de l'afficher plutôt que de le sauver ? |
A priori le Content-Disposition: Attachement suffit à IE et à Mozilla pour que le fichier soit traité comme un fichier à enregistrer...
Marsh Posté le 16-09-2002 à 12:46:38
antp a écrit a écrit : t'as avalé ton petit déjeuné de travers ce matin ou quoi ? |
Escuse moi, j'ai pas trop regarder les pseudo et sur le moment, j'ai crus que --greg-- et toi était la même personne.
La réponse super constructive de greg m'avait assez énervé et je crois bien que c'est d'une part ta réponse au message de sh@rdar et d'autre part ta réponse ayant pour texte "... la preuve que c'est pas possible donc
" (réponse pas aussi méchante que cette de greg mais un peu le même genre de message quand même quand on y réfléchis) qui m'a induit en erreur.
En tout cas, toi, tu cherches à proposer les meilleures solutions possibles (pas comme greg je dirais) et c'est pour ça que je m'escuses du côté "mec enervé" de ma réponse à ton égard.
Marsh Posté le 16-09-2002 à 12:46:58
omega2 a écrit a écrit : Mieux vaut un text/sql qu'un text plain. Si le navigateur ne reconait pas ce type mime, il proposera de le sauvegarder, tantdis qu'avec un text/plain, il y a de grosse chance qu'il le reconaisse et qu'il l'ouvre desuite dans le navigateurn plustôt que de le sauvegarder. |
La question que je posais c'était surtout pour savoir si les types MIME étaient censés être quelque chose de rigide ou bien si c'étaient prévu pour évoluer librement selon les besoins.
Maintenant, j'ai testé le bout de code que je vous ai mis et ça marche pour IE (Mac) et Mozilla. Je fais le test immédiatement avec le type text/plain...
Marsh Posté le 16-09-2002 à 12:50:28
Toucouch a écrit a écrit : La question que je posais c'était surtout pour savoir si les types MIME étaient censés être quelque chose de rigide ou bien si c'étaient prévu pour évoluer librement selon les besoins. Maintenant, j'ai testé le bout de code que je vous ai mis et ça marche pour IE (Mac) et Mozilla. Je fais le test immédiatement avec le type text/plain... |
Pour les types mime les plus habituels, c'est rigides afin que les logiciels puissent les reconaitres, mais à ma conaissance, il n'est pas interdit d'en créer un nouveau quand on en a besoin.
Le seul risque, c'est de tomber sur un type mime utilisé par un autre logiciel et donc de voir son fichier envoyé à ce logiciel là au lieu d'être sauvegarder (risque minime je penses)
D'ailleur, si quelqu'un conait un site qui recense les diférents type mime existant, ca pourait être intéressant d'y jeter un oeui.
Marsh Posté le 16-09-2002 à 12:51:10
omega2 a écrit a écrit : Escuse moi, j'ai pas trop regarder les pseudo et sur le moment, j'ai crus que --greg-- et toi était la même personne. |
ha ok parce que je me demandais où j'avais caché des sarcasme dans mes posts
Marsh Posté le 16-09-2002 à 12:55:34
Bien vu les mecs!
Ces 2 enculés de navigateurs se contrefoutent de mon header("... Attachment..." ) quand je mets "text/plain" et quand je ne mets aucune spécification quant au type utilisé! Ils me l'ouvrent comme un fichier texte (ou html)...
J'espere au moins que d'autres navigateurs ne feront pas la même chose en voyant "type: text/"...
Sinon, je peux toujours mettre un type systématiquement associé au téléchargement comme les fichiers zip, etc.
Marsh Posté le 16-09-2002 à 12:58:04
omega2 a écrit a écrit : ... D'ailleur, si quelqu'un conait un site qui recense les diférents type mime existant, ca pourait être intéressant d'y jeter un oeui. |
Il y a une liste chez commentcamarche.com mais je ne sais pas si elle est exhaustive...
Marsh Posté le 16-09-2002 à 13:02:22
Voici une liste "officielle" des types MIME:
ftp://ftp.isi.edu/in-notes/iana/a [...] edia-types
Sinon, d'après ce que j'ai pu lire, ils existent en plus des types "non-officiels" utilisés pour certains usages particuliers. Donc, je pense que je vais garder mon text/sql...
[edit]
Création du lien vers le site.
Marsh Posté le 16-09-2002 à 13:49:37
omega2 a écrit a écrit : Escuse moi, j'ai pas trop regarder les pseudo et sur le moment, j'ai crus que --greg-- et toi était la même personne. La réponse super constructive de greg m'avait assez énervé et je crois bien que c'est d'une part ta réponse au message de sh@rdar et d'autre part ta réponse ayant pour texte "... la preuve que c'est pas possible donc " (réponse pas aussi méchante que cette de greg mais un peu le même genre de message quand même quand on y réfléchis) qui m'a induit en erreur. En tout cas, toi, tu cherches à proposer les meilleures solutions possibles (pas comme greg je dirais) et c'est pour ça que je m'escuses du côté "mec enervé" de ma réponse à ton égard. |
spa ma faute si tu dis des trucs droles
Marsh Posté le 16-09-2002 à 14:37:34
zeux a écrit a écrit : Java autorise ce type de manipulation, néanmoins une fenêtre de sécurité obligatoire demandant à l'utilisateur de confirmer doit apparaître. |
Marsh Posté le 16-09-2002 à 15:16:45
--greg-- a écrit a écrit : spa ma faute si tu dis des trucs droles |
Alros vas y, explique donc ce qu'il y avait de drole.
Marsh Posté le 16-09-2002 à 15:18:07
omega2 a écrit a écrit : Alros vas y, explique donc ce qu'il y avait de drole. |
Marsh Posté le 16-09-2002 à 15:23:45
omega2 a écrit a écrit : Alros vas y, explique donc ce qu'il y avait de drole. |
faut pas s'inquiéter, c'est l'état normal de greg
Marsh Posté le 16-09-2002 à 15:26:51
antp a écrit a écrit : faut pas s'inquiéter, c'est l'état normal de greg |
Ben vu son dernier message, j'avais crus comprendre ça.
Il a trouvé très rigolo ce que j'avais dit mais après relecture, il arrive pas à dire ce qui y était drole.
Seraisse un symptome d'une blablaterie avancé.
Marsh Posté le 16-09-2002 à 18:27:37
Toucouch a écrit a écrit : Exactement, je voulais faire le système le plus transparent possible pour l'utilisateur final |
si l'utilisateur peut avoir une machine bien précise :
à partir d'ie5.5, il y a les HTA : HTml Applications. ce sont des .html avec une extension .hta. donc même fonctionnalités, de plus ça tourne avec tous les privilèges et peut donc lire un fichier du web / écrire sur le dur (avec les activex de windows). tu peux donc faire un raccourci à double cliquer sur le bureau, qui lance ton applic et effectue la sauvegarde.
(par contre il est évidemment impossible de linker vers le .hta (sécurité oblige), ie demandera où sauvegarder le fichier).
Marsh Posté le 16-09-2002 à 18:32:29
youdontcare a écrit a écrit : si l'utilisateur peut avoir une machine bien précise : à partir d'ie5.5, il y a les HTA : HTml Applications. ce sont des .html avec une extension .hta. donc même fonctionnalités, de plus ça tourne avec tous les privilèges et peut donc lire un fichier du web / écrire sur le dur (avec les activex de windows). tu peux donc faire un raccourci à double cliquer sur le bureau, qui lance ton applic et effectue la sauvegarde. (par contre il est évidemment impossible de linker vers le .hta (sécurité oblige), ie demandera où sauvegarder le fichier). |
Donc autant faire avec du php ou autre langage côté serveur, il y aura le même inconvénient (le navigateur demandera où sauvegarder le fichier) mais au moins ca marchera aussi avec netscape, mozilla, opera, IE5.0 ...
Marsh Posté le 16-09-2002 à 18:36:01
omega2 a écrit a écrit : Donc autant faire avec du php ou autre langage côté serveur |
si tu fais un lien vers le .hta . si tu dis au type qui doit sauvegarder la base "clique sur le lien 'sauvegarde de la base' sur le bureau", ce sera complètement transparent. le .hta peut également être lancé au démarrage de windows et se rafraîchir toutes les X heures pour une sauvegarde automatique.
omega2 a écrit a écrit : mais au moins ca marchera aussi avec netscape, mozilla, opera, IE5.0 ... |
je ne vois pas l'intérêt de se priver de fonctionnalités ie pour une page non publique.
Marsh Posté le 16-09-2002 à 09:41:22
A priori, je pense connaître la réponse à ma question, mais à tout hasard, connaissez-vous un moyen d'enregistrer un fichier sur le disque dur du client?
En deux mots, ce que je cherche à faire, c'est faire une sauvegarde de la base de données d'un site de la façon la plus simple possible pour l'utilisateur (supposé non-informaticien): en gros, il clique sur le bouton "Sauvegarder" et un fichier .sql est créé sur son poste à un endroit donné.
Possible, pas possible? Merci d'avance pour vos réponses.