|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
Bonjour à tous,
je suis un grand newbi du php, du javascript. J'ai repris un projet (un atlas-on peut zoomer selectionner se deplacer ajouter des calques ect...) qui comprend plusieurs fichiers php, et j'ai appris le php en les lisant donc je pense pas que je sois très très bon!^^ En fait j'aimerai pouvoir enregistrer des images lorsque je clique sur un bouton. Ça fait une semaine que je cherche et j'ai trouvé une fonction qui me permet de choisir l'emplacement de sauvegarde (ce qui est parfait!) mais (il y a toujours un mais) puisqu'elle fait appel à des headers dans tous les sens, elle me bloque un peu tous mes 'outils' (zoom...) sur ma page principale. Donc je me suis dit que je ferai appel à cette fonction sur une autre page. J'aimerai que l'utilisateur aie juste à cliquer sur un bouton et que ça lance cette fonction php (ci-dessous) mais (encore!) le onclick prend des fonctions javascript...et là je rebloque... Code :
je suis ouvert à tous conseils et toutes critiques (pas trop trop méchante quand même Merci |
||
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Tu peux faire un fichier php chargé de distribuer l'image.
Tu lui passes par un lien HTML les paramètres et il fait ton traitement actuellement dans la fonction downloadFile. Attention, quelque soit la méthode, il est impératif de valider le fichier qui a été demandé en téléchargement. Dans ton script actuel, le script ne filtre rien et l'utilisateur peut donc voir n'importe quel fichier du serveur pour lequel le serveur web a des droits. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
Merci pour ta réponse.
Donc si j'ai bien compris, au lieu de faire un bouton, je fais une sorte de lien qui appelle ma fonction donwloadFile c'est ça? du style: Code :
echo "<a href='downloadFile(".$file_path.")'>Enregistrer l'image en Geotiff</a>"; Sinon pour sécuriser le download, si je change le default du case ça suffit non? Encore merci **** EDIT **** Je pense m'être un peu fourvoyer parce que je viens de faire le test et ça marche pas trop trop (enfin pas du tout ^^) |
|
|
00
|
|
|
#4 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Non le lien est vers un fichier .php qui contient la même chose que ce que fait ta fonction downloadFile
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
oui je m'en suis aperçu ^^.
En fait, imaginons je fais le nécessaire pour créer le fichier puis je fais un qui me fait tout le blabla non? le souci c'est que ça ça marchait ce matin mais là niet, impossible de diriger mon client vers cette page... |
|
|
00
|
|
|
#6 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Non, ce n'est pas du tout ce que j'ai expliqué.
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
![]() ben j'ai rien compris alors, désolé. Moi de ce que j'ai compris de ce que tu m'as dit, c'est que je redirige mon client vers une page qui fait ma fonction dowloadFile... mais la, j'arrive même plus a rediriger ma page... |
|
|
00
|
|
|
#8 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Je n'ai pas parlé de redirection mais d'un lien.
Je veux toto.jpg : http://www.site.com/download.php?file=toto.jpg |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
je dois mal m'exprimer mais c'est ce que j'ai essayé de faire (surement mal).
En fait je suis obligé de rediriger mon client vers une nouvelle page parce que la page principale de mon site est une carte avec différents outils (boutons etc...) autour. Du coup, pour la sauvegarde je voyais quelque chose du style que lorsque tu cliques sur le bouton qui va bien, cela t'envoie vers une autre page qui elle t'affiche le lien... Est ce que tu vois ce que je veux dire? Je pense que c'est à cause de çà que je me suis emmêle entre lien et redirection... désolé. Donc si je suis mon idée: lorsque le client clique sur le bouton je le redirige en faisant un puis sur cette page export je crée un lien qui me lance la fonction downloadFile. Est ce qu on est d'accord ou est ce que je peux sauter par ma fenêtre (5e étage^^) ? Merci pour ton temps |
|
|
00
|
|
|
#10 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
encore une fois, je n'ai jamais parlé de redirection, je t'ai dit d'utiliser un lien.
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
Je suis d'accord mais je ne peux pas utiliser de lien sur ma page principale... Donc je redirige pour juste afficher un lien...
Je suis d,accord que c est pas tres optimal mais ça évite les effets de bord bizarre que les headers provoquent... |
|
|
00
|
|
|
#12 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
qu'est ce qui empêche d'afficher un lien sur la page ?
|
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
En fait c'est un atlas en ligne, j'utilise pas que du php, j'utilise aussi du php mapscript.
http://nival.ete.inrs.ca/Atlas/main.php pour te donner une idée de la page principale. |
|
|
00
|
|
|
#14 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
et ca empeche de faire un lien ?
|
|
|
00
|
|
|
#15 | ||
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
Ben soit je dois pas comprendre le concept de lien alors...
Parce que en fait, si tu as remarqué, l'utilisateur peut exporter sa map en deux formats: PNG (plus leger) et GEOTIFF (plus lourd mais possède le géoréférencement de la map). À la base j'ai récupéré le projet, il y a plusieurs fichiers php, j'essaie de comprendre l'architecture que le concepteur à voulu mettre en place, et je pense qu'on peut voir comme ça: Action User --> Traitements --> Fonctions --> Save Map ---> Affichage de la Map --v ^------------------------------------------------------------------------------------------------------ Donc du coup, j'essaie de faire la sauvegarde dans les fonctions pour respecter cette architecture. Le problème c'est que quand j'ai essayé de mettre (dans le fichier fonction) ma fonction downloadFile avec tous les headers, elle reste active encore derrière donc si tu sauvegardes puis clique pour rajouter un calque elle se relance...je vais essayer de la désactiver alors... **** EDIT **** Je viens de tester en mettant mon appel de downloadFile dans ma fonction qui s'exécute lors du clique sur le bouton qui va bien. Cela marche, la fonction se lance, la fenêtre apparait, la sauvegarde se fait nikel, mais si jamais je désire ajouter un autre calque, cela bug. Cela reouvre une nouvelle fenetre d'enregistrement pour main.php des fois ou pour autre chose. je pense que cela vient du "default" de mon switch dans downloadFile. Cependant si je fais ça dans ma fonction Code :
Merci de prendre le temps de me répondre, je suppose que cela doit te sembler débile... |
||
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Stagiaire Inscription : mai 2009 Messages : 22 ![]() |
Bonjour,
J'ai beau réfléchir à essayer d'utiliser un lien pour effectuer le traitement d'enregistrement, le problème est que je dois faire une manipulation d'une variable avant et cette variable je ne peux pas la faire passer d'une page à une autre...(c'est une variable mapObj de Mapserver) Si je peux pas faire cette sauvegarde je suis vraiment bloqué pour la suite de mon projet... Je suis désolé si je t'ai énervé sabotage, mais je suis vraiment novice en php/javascript/Mapserver. Merci et bonne soirée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com