Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 28-05-2008 09:39:30

quent1  
Membre Geek
Date d'inscription: 12-03-2008
Messages: 22
Pépites: 39,278
Banque: 2,147,483,647

[RESOLU] Transférer une DW exportée en PDF sur un serveur FTP

Bonjour,

Je fais un SaveAs d'une DW afin de la sauver en PDF sur le serveur. Le problème, c'est que ce PDF est
sauvé dans un répertoire temporaire de IIS et est supprimé lorsque l'utilisateur quitte sa session.

J'aimerai que ce PDF soit transféré de manière transparente pour l'utilisateur sur un serveur FTP.
J'ai trouvé sur le site de Sybase Code Exchange un PFC permettant de travailler avec un FTP.

Je réussi à me connecter au FTP via PB, je sais avoir la liste des dossiers, supprimer ou renommer un fichier,
manipuler un répertoire, ...
Par contre, impossible d'uploader le fichier PDF. La commande 'of_putfile( as_source, as_target, ab_ascii)'
me retourne -1. Juste après cette commande, je teste la commande 'of_getlasterror()', celle-ci me renvoie '2'
et la commande 'of_internetgeterrortext( )' ne me renvoie rien du tout.

J'ai testé mon code avec un projet Win, et comme par magie , cela fonctionne
parfaitement. Je soupçonne que le problème vienne du fait que le fichier source
est sauvé dans un répertoire temporaire selon la session.

Avez-vous une idée de la raison pour laquelle cela ne fonctionne pas en Web?

Projet Web réalisé avec PB 11.1 build 8123 sous XP SP 2

Merci à tous.

Dernière modification par quent1 (28-05-2008 12:53:31)

Hors ligne

 

#2 28-05-2008 11:55:13

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Transférer une DW exportée en PDF sur un serveur FTP

Bonjour, as-tu essayé en mappant le dossier vituel (ex: c:\temp\doc.pdf) ou/et le dossier réel (ex :  <root_www_iis>\<appli_web>\file\session\xxxxxxxxxxxxxxx\c\temp\doc.pdf )  ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 28-05-2008 12:40:48

quent1  
Membre Geek
Date d'inscription: 12-03-2008
Messages: 22
Pépites: 39,278
Banque: 2,147,483,647

Re: [RESOLU] Transférer une DW exportée en PDF sur un serveur FTP

Au risque de paraître pour un idiot , qu'entends-tu par 'mapper le dossier virtuel'? Je ne vois pas trop
comment faire.

Par contre, après plusieurs tests, je viens de remarquer quelque chose:

Lorsque l'on fait un 'SaveAs', le sytème crée le fichier dans le répertoire virtuel <appli_web\file\.......
en recréant l'arborescence (Si je sauve sur c:\test.pdf, alors, le fichier sera sauvé sur <root_www_iis>\<appli_web>\file\session\xxxxxxxxxxxxxxx\c\test.pdf)

Je pensais donc que lorsque je fesais un 'of_putfile' avec comme source le fichier
en question, le système allait le récupérer dans le répertoire virtuel. Ce n'est pas le cas, mais si je place
le fichier sur le C:\ du serveur alors cela fonctionne car C:\test.pdf existe.

Le problème peut donc être réglé si j'arrive à connaitre la session de l'utilisateur qui est connecté car je
pourrais dès lors reconstruire le chemin complet du fichier ( c:\root_www_iis>\<appli_web>\file\session\xxxxxxxxxxxxxxx\...)

Est-ce qu'il existe une commande PB permettant de récupérer cette session ?

Hors ligne

 

#4 28-05-2008 12:52:57

quent1  
Membre Geek
Date d'inscription: 12-03-2008
Messages: 22
Pépites: 39,278
Banque: 2,147,483,647

Re: [RESOLU] Transférer une DW exportée en PDF sur un serveur FTP

Problème résolu.

J'ai récupéré la variable SessionID via cette commande

Code: pb

#if defined PBWEBFORM then
 System.Web.SessionState.HttpSessionState ss
 ss = System.Web.HttpContext.Current.Session
 ls_temp = ss.SessionID
#end if


Ce qui me permet de reconstruire le chemin complet.

Merci pour ton aide erasorz, cela m'a permis de faire d'autres types de tests auxquels je n'avais pas pensé et
de trouver une autre solution.

Encore merci

Hors ligne

 

#5 28-05-2008 15:03:40

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Transférer une DW exportée en PDF sur un serveur FTP

as-tu essayé MapVirtualPath ?

Code: pb

//The following code returns the actual path on a new line in a MultiLineEdit control:

#if defined PBWEBFORM then
     mle_1.text +='~r~nActual Path='  + MapVirtualPath('c:\a.txt')
#end if

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 29-05-2008 07:01:56

quent1  
Membre Geek
Date d'inscription: 12-03-2008
Messages: 22
Pépites: 39,278
Banque: 2,147,483,647

Re: [RESOLU] Transférer une DW exportée en PDF sur un serveur FTP

Je viens d'essayer et ça fonctionne également.
Je vais utiliser ta solution, elle est meilleure que la mienne. Plus besoin de savoir où est installée l'appli web.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22