PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 25 → FTPRécupère ne ramène pas le fichier sur mon poste
FTPRécupère ne ramène pas le fichier sur mon poste
Débuté par APJ, 16 mar. 2020 11:11 - 7 réponses
Membre enregistré
8 messages
Posté le 16 mars 2020 - 11:11
Bonjour à tous.

Je ne sais pas si quelqu'un a déjà eu le problème, ou peut-être que je ne comprends pas bien le mécanisme de la commande FTPRécupère sous Wevdev25

Je veux récupérer un fichier présent sur le serveur à mettre sur mon poste, afin de l'ouvrir ensuite.

Ma commande est celle-ci :

FTPRécupère(numconnexion,fRepWeb()+"\tempdoss\"+nom_fichier,"C:\TEMP\")



La commande me ramène "Vrai", la connexion au serveur est OK.

Le fichier présent dans le répertoire du serveur "fRepWeb()+"\tempdoss\" est bien copié dans le répertoire de destination "C:\Temp", mais il s'agit du "C:\Temp" du même serveur et non celui de mon poste ...

Du coup, je ne comprends pas bien l'intérêt du FTPRécupère si ce comportement est normal ..

Ai-je oublié quelque chose ? Y a-t-il un paramètre à modifier ?

Merci d'avance pour vos conseils..
Posté le 16 mars 2020 - 16:13
Bonjour,

Le problème ne vient pas des fonctions FTP mais de ta compréhension du
fonctionnement de WEBDEV : tu as écrit ton code de récupération dans le
code du serveur donc celui qui se connecte en FTP et qui récupère le
fichier c'est le serveur et pas le navigateur.

Il n'est pas possible de récupérer un fichier FTP depuis le navigateur,
si tu veux "Downloader" un fichier du serveur vers le navigateur il
faut regarder du côté de cette fonction https://doc.pcsoft.fr/?3012025
Membre enregistré
8 messages
Posté le 17 mars 2020 - 08:33
Bonjour Pierre.

Merci pour ta réponse claire et merci pour le lien.

Effectivement, j'ai toujours un peu de mal de revenir au webdev.

J'utilise bien le "FichierAffiche" qui télécharge le fichier. Mais pour une raison inconnue, dans une boucle, il télécharge un fichier sur les 2 à récupérer. Pourtant, le "FTPrécupère" "copie" bien les 2 fichiers, lui ,dans la même boucle. Mais c'est un autre problème.

Merci encore pour ton éclaircissement.
Posté le 17 mars 2020 - 09:35
Bonjour,


Téléchargement de fichiers volumineux

Le téléchargement de fichiers via la fonction FichierAffiche peut être
plus lent que le téléchargement direct par un lien http.
Dans le cas de la fonction FichierAffiche, le moteur WEBDEV :
Ouvre le fichier à télécharger.
Transfère le fichier au serveur Web en lui demandant d’envoyer le
fichier vers l’internaute.
Dans le cas d’un lien http, c’est le navigateur de l'internaute qui va
chercher directement le fichier à télécharger.
Pour des fichiers volumineux, il est conseillé d’utiliser un lien http.
Dans ce cas, le chemin et le nom du fichier à télécharger peuvent être
paramétrés grâce à la propriété ..URL.
Membre enregistré
8 messages
Posté le 20 mars 2020 - 11:45
Bonjour Pierre.

J'ai vu effectivement la différence entre le FichierAffiche et le téléchargement via HTTP.

Dans mon cas, les fichiers ne sont pas volumineux.

Au lieu d'utiilser la boucle, j'ai créé un bouton où je mets uniquement 2 FichierAffiche tout simples, l'un après l'autre , seul le premier fichier s'ouvre dans un nouvel onglet du navigateur. Les 2 fichiers sont pourtant présents dans le répertoire.

FichierAffiche(fRepWeb()+"\tempdoss\sites.pdf","application/pdf")

FichierAffiche(fRepWeb()+"\tempdoss\Envoi_photos.pdf","application/pdf")


Est-ce normal ?
Membre enregistré
698 messages
Posté le 20 mars 2020 - 15:18
Bonjour,

La fonction FichierAffiche est bloquante, tu ne peux donc pas enchainer du code après l'appel d'un fichieraffiche

jordan
Posté le 20 mars 2020 - 17:00
ton problème vient de la non compréhension du fonctionnement d'un site web... le voici :

- le coté client demande quelque chose (une requete faite au serveur)
- le serveur envoie UNE réponse...

La partie importante, dans ton cas est le mot "UNE"
Le serveur ne peut pas afficher deux pages, renvoyer deux fichiers ou faire deux réponses quelconques au navigateur...
Donc, un pageaffiche, fichieraffiche ou équivalent est la FIN de la communication

Deux fichierAffiche ou une boucle coté serveur auront le même résultat

Donc, soit tu zippe tous ls fichiers à renvoyer sur le serveur et à la fin tu envoie le zip au client, soit tu fais une boucle COTE CLIENT et tu demande un fichier au serveur à chaque tour de la boucle.
Membre enregistré
8 messages
Posté le 25 mars 2020 - 18:10
Bonjour Jordan et Argus

Merci pour vos réponses. C'est ce que j'en comprenais pour l'exécution de 2 Fichieraffiche à suivre. Vous venez de me le confirmer avec des explications claires..