Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/02/2006, 11h27   #1
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
Par défaut INSERT et UPLOAD

Je veux sur un même formulaire, saisir des données et renseigner un fichier à envoyer sur le Serveur.
Si je fais 2 xmlservices différents, çà marche.
Mais lorsque je veux faire tout dans 1 même xmlservices, l'une des 2 actions marche mais pas la deuxième.
J'ai essayé :
1 form avec Action InsertCartet,
Dans le Xmlservice InsertCartet, dans le AfterXmlGram, j'essaie de lancer
Code :
   XMLCollection.Execute('XMLC_UploadFile');
Mais il me dit qu'il n'a pas de fichier à télécharger, même en passant en paramètre ?file='.........'

L'autre solution pourrait être de créer un xmlservice ou je passe la référence de mon file et il fait le téléchargement sans avoir à cliquez sur un bouton

Merci de votre aide
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2006, 11h52   #2
Membre confirmé
 
Avatar de Jeweller
 
Inscription : août 2003
Messages : 354
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 354
Points : 226
Points : 226
Je ne comprends pas quel est ton soucis? Tu peux sans probleme poster un formulaire vers un xmlservice qui enverra des données et des fichiers en même temps!

Tu recupères dans ton context les données et dans le XMLRequest tes fichiers, par exemple:

Code :
1
2
3
4
5
6
 
if Context.getValue('CHAMP1') = 'OK' then
begin
     for i := 0 to XMLRequest.GetFileCount -1 do
           XMLRequest.SaveFileNo(i,path + XMLRequest.GetFileName(i));
end;
Peux tu préciser ta question ?

Michael
Jeweller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2006, 14h01   #3
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
Dans ma form, j'ai un input de type file, dans lequel je peux sélectionner le fichier à télécharger.
Dans une form upload classique, l'action de la form est XMLC_UploadFile
La mon action est InsertCartet et je veux à la suite de l'insert, télécharger le fichier vers le repertoire upload du serveur.
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2006, 16h07   #4
Membre confirmé
 
Avatar de Jeweller
 
Inscription : août 2003
Messages : 354
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 354
Points : 226
Points : 226
Dans ce cas, ce que j'ai précisé ci dessus est valable et tu n'as rien à faire d'autre. Sauf peut etre à préciser dans ton formulaire html l'encodage:

Code :
<form enctype="multipart/form-data" ...
Michael
Jeweller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2006, 16h59   #5
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
Voici le code que j'ai mis dans mon xmlservice INSERT et dans l'évènement AfterXMLGRAM
Dans file, c'est le nom du fichier sélectionné dans mon formulaire de saisie
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
   if XMLApplication.InitParams.Values['XMLC_AllowFileUpload'] <> '1' then 
     XMLRequest.RaiseError('ERR_FILE_UPLOAD_NOT_ALLOWED', ClassName+'.XMLC_UploadFile'); 
 
   if context.Values['file'] = '' then 
     begin 
       if XMLC_TraceInfo then EventLog.TraceInfo(XMLRequest, ClassName, 'XMLC_UploadFile - Pas de fichier à télécharger'); 
       Exit; 
     end; 
 
   UploadDir := XMLApplication.InitParams.Values['XMLC_FileUploadDir']; 
   if UploadDir = '' then 
     UploadDir := 'Upload'; 
   UploadDir := ConcatDir(XMLApplication.InitParams.Values['XMLC_DefaultDataDir'], UploadDir, True); 
 
   filename := context.Values['CA_ID']+ '_' + ExtractFileName( context.Values['file']); 
   context.Values['CA_FILENAME']:= filename; 
   FileName := ConcatDir(UploadDir, FileName, False); 
   if FileExists(FileName) then 
       XMLRequest.RaiseError('ERR_UPLOADED_FILE_ALREADY_EXISTS', ClassName+'.XMLC_UploadFile - FileName[''+FileName+'']'); 
       if XMLC_TraceInfo then EventLog.TraceInfo(XMLRequest, ClassName, 'XMLC_UploadFile - ' + context.Values['file'] + ' dest : ' + filename); 
     WriteStringToFile(context.Values['file'], FileName, False);

avec cela ça marche.
Merci pour votre Aide.
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h20.


 
 
 
 
Partenaires

Hébergement Web