Accueil > > > SERVERXMLHTTP : AUTOMATISATION D'ENVOI D'UN FORMULAIRE AVEC UPLOAD
SERVERXMLHTTP : AUTOMATISATION D'ENVOI D'UN FORMULAIRE AVEC UPLOAD
Information sur la source
Description
Ce script permet l'automatisation d'envoi d'un formulaire à une page de traitement web avec upload d'un (ou plusieurs) fichier(s).
Source
- Sub Send_File()
-
- Dim XMLfileName As String
- Dim ZIPfileName As String
-
- 'Variables systeme fichier
- Dim Fso As FileSystemObject
- Dim FSo2 As FileSystemObject
- Dim FichierLog_Stream As TextStream
- Dim LOGfileName As String
-
-
-
-
- '##########################################################################
- 'Lecture du fichier pour stockage Binaire
- Dim strFileName1 As String
- Dim nFile As Integer
- Dim strText As String
-
- strFileName1 = "C:\nomfichier.xml"
- nFile = FreeFile
-
- Open strFileName1 For Binary As #nFile
- strText = String(LOF(nFile), " ")
- Get #nFile, , strText
- Close #nFile
-
- '##########################################################################
- 'Préparation des entete et body du formulaire
- Dim ServerSafeHTTP As XMLHTTP50
- Set ServerSafeHTTP = CreateObject("Msxml2.ServerXMLHTTP")
-
- ServerSafeHTTP.Open "POST", Const_URL_SERVER_DEST, False
-
- Dim StrBody As String
-
- StrBody = ""
- StrBody = StrBody & setBody("Champ1", "voiture") 'Champ Champ1 du formulaire
- StrBody = StrBody & setBody("Champ2", "modele") 'Champ Champ2 du formulaire
- StrBody = StrBody & setBodyFile(Right(strFileName1, 3)) 'entete du fichier selon son type
- StrBody = StrBody & strText & vbCrLf & "--" & Const_BOUNDARY & "--" 'Fin de traitement
-
- Dim aPostData() As Byte
- aPostData = StrConv(StrBody, vbFromUnicode)
-
- ServerSafeHTTP.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & Const_BOUNDARY & vbCrLf
- ServerSafeHTTP.send aPostData
-
-
- If ServerSafeHTTP.Status = 200 Then
- msgbox ("Envoi effectué :" & ServerSafeHTTP.responseText)
- Else
- msgbox ("Erreur :" & _
- ServerSafeHTTP.Status & vbcrlf & ServerSafeHTTP.statusText & vbcrlf & ServerSafeHTTP.responseText)
- End If
-
- End Sub
-
- 'Création des Champs du formulaire
- Function setBody(name, value)
- Dim body
- body = "--" & Const_BOUNDARY & vbCrLf
- body = body & "Content-Disposition: form-data; name=""" & name & """" & vbCrLf & vbCrLf
- body = body & value & vbCrLf
- setBody = body
- End Function
-
- 'Création de l'entete UPLOAD du champ fichier du formulaire selon son type
- Function setBodyFile(extention)
- Dim body
- body = "--" & Const_BOUNDARY & vbCrLf
- body = body & "Content-Disposition: form-data; name=""file""; filename=""ExportCARIFPCH.xml""" & vbCrLf
- body = body & "Content-Transfer-Encoding: binary" & vbCrLf & vbCrLf
- Select Case extention
- Case "zip"
- body = body & "Content-Type: application/zip" & vbCrLf & vbCrLf
- Case "xml"
- body = body & "Content-Type: text/xml" & vbCrLf & vbCrLf
- Case Else
- body = body & "Content-Type: text/plain" & vbCrLf & vbCrLf
- End Select
-
- setBodyFile = body
- End Function
Sub Send_File()
Dim XMLfileName As String
Dim ZIPfileName As String
'Variables systeme fichier
Dim Fso As FileSystemObject
Dim FSo2 As FileSystemObject
Dim FichierLog_Stream As TextStream
Dim LOGfileName As String
'##########################################################################
'Lecture du fichier pour stockage Binaire
Dim strFileName1 As String
Dim nFile As Integer
Dim strText As String
strFileName1 = "C:\nomfichier.xml"
nFile = FreeFile
Open strFileName1 For Binary As #nFile
strText = String(LOF(nFile), " ")
Get #nFile, , strText
Close #nFile
'##########################################################################
'Préparation des entete et body du formulaire
Dim ServerSafeHTTP As XMLHTTP50
Set ServerSafeHTTP = CreateObject("Msxml2.ServerXMLHTTP")
ServerSafeHTTP.Open "POST", Const_URL_SERVER_DEST, False
Dim StrBody As String
StrBody = ""
StrBody = StrBody & setBody("Champ1", "voiture") 'Champ Champ1 du formulaire
StrBody = StrBody & setBody("Champ2", "modele") 'Champ Champ2 du formulaire
StrBody = StrBody & setBodyFile(Right(strFileName1, 3)) 'entete du fichier selon son type
StrBody = StrBody & strText & vbCrLf & "--" & Const_BOUNDARY & "--" 'Fin de traitement
Dim aPostData() As Byte
aPostData = StrConv(StrBody, vbFromUnicode)
ServerSafeHTTP.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & Const_BOUNDARY & vbCrLf
ServerSafeHTTP.send aPostData
If ServerSafeHTTP.Status = 200 Then
msgbox ("Envoi effectué :" & ServerSafeHTTP.responseText)
Else
msgbox ("Erreur :" & _
ServerSafeHTTP.Status & vbcrlf & ServerSafeHTTP.statusText & vbcrlf & ServerSafeHTTP.responseText)
End If
End Sub
'Création des Champs du formulaire
Function setBody(name, value)
Dim body
body = "--" & Const_BOUNDARY & vbCrLf
body = body & "Content-Disposition: form-data; name=""" & name & """" & vbCrLf & vbCrLf
body = body & value & vbCrLf
setBody = body
End Function
'Création de l'entete UPLOAD du champ fichier du formulaire selon son type
Function setBodyFile(extention)
Dim body
body = "--" & Const_BOUNDARY & vbCrLf
body = body & "Content-Disposition: form-data; name=""file""; filename=""ExportCARIFPCH.xml""" & vbCrLf
body = body & "Content-Transfer-Encoding: binary" & vbCrLf & vbCrLf
Select Case extention
Case "zip"
body = body & "Content-Type: application/zip" & vbCrLf & vbCrLf
Case "xml"
body = body & "Content-Type: text/xml" & vbCrLf & vbCrLf
Case Else
body = body & "Content-Type: text/plain" & vbCrLf & vbCrLf
End Select
setBodyFile = body
End Function
Conclusion
La procédure Setbody crée les lignes champs de formulaire La procédure setBodyFile crée la ligne entête fichier à uploader. Je l'ai utilisé afin d'automatiser l'envoi d'un fichier ZIP vers un servlet Java avec plusieurs champs de formulaire. Il est possible d'envoyer le contenu d'un fichier texte ou XML sans la conversion en binaire s'il n'est pas trop grop, mais attention au timeout du serveur destinataire
Historique
- 30 janvier 2006 10:43:43 :
- Suite à la demande de Net1dsang, voici une capture d'écran des références de ce projet.
Pour le zip j'ai utilisé Xzip.dll (composant gratuit)
- 30 janvier 2006 10:55:13 :
- Nouvel envoi de l'image qui n'est pas passée
- 18 mai 2006 15:56:46 :
- Les références du projet si le fichier passe cette fois.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
[VB.NET/XLM] Impossible de trouver la table 0 [ par Netlink ]
Bonjour,J'ai un source afin de pouvoir modifier des données dans un fichier XML. Mais je rencontre cette erreur lors de l'exécution sur le serveur (Wi
URL et Flux XML [ par dyfred ]
Bonjour, Je travaille sur une application qui fonctionne avec des servlets qui renvoient du XML. Cependant, j'aimerai pouvoir gérer les appels &
URL et Flux XML [ par dyfred ]
Bonjour, Je travaille sur une application qui fonctionne avec des servlets qui renvoient du XML. Cependant, j'aimerai pouvoir gérer les appels &
URL et flux XML [ par dyfred ]
Bonjour, Je travaille sur une application qui fonctionne avec des servlets qui renvoient du XML. Cependant, j'aimerai pouvoir gérer les appels
Lien XML et SQL Server 2005 [ par lydiemml ]
Salut à tous !J'ai des données sous SQL Server 2005 que je dois archiver sous le format XML. Je ne sais pas comment m'y prendre. Merci de me donner un
upload http probleme de lecteur du fichier [ par papipsycho ]
Bonjour, voila mon probleme je veux upload un fichier en http est quand le lit mon fichier (example: .rar) que je veux upload et que je send a un scri
Envoi de fichier en HTTP [ par eka808 ]
Salut à tousJ'ai créé un serveur http mais je n'arrive pas à faire télécharger des images ou documents par l'explorateurOu est-ce que je peux trouver
XPath - VB.Net - Etrange comportement - Yahoo XML [ par doustij ]
Bonjour, J
Importer des données dans SQL Server à partir de VB6 et XML [ par helene76 ]
Bonjour !Je souhaite intégrer des données dans une base SQL server 2000 à partir d'une appli VB, les données sont stockées dans un fichier XML.Je suis
Xml dans Sql Server [ par cluster57190 ]
Bonsoir a tous, Voila mon problème j'ai un document xml qui m'arrive tous les jours et j'aimerais pouvoir l'insérer en intégralité dans une cellule d
|
Derniers Blogs
[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey [WP7] BESOIN D'AVOIR DES DONNéES EN CACHE[WP7] BESOIN D'AVOIR DES DONNéES EN CACHE par Nicolas
Les développeurs ASP.NET ont l'habitude de mettre des données en cache pour éviter de requêter a chaque fois la base de données. Et il est toujours utilie de penser que vos utilisateurs mobiles n'ont pas troujours une super connexion 3G/WIFI et un for...
Cliquez pour lire la suite de l'article par Nicolas [TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION[TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION par cyril
Lorsque l'on créé un Work Item dans TFS, il est possible de le classer dans un "area" et dans une "iteration". Dans la plupart des types de projet, un "area" correspond à une catégorie, une "iteration" à un numéro de version. Il est possible de cré...
Cliquez pour lire la suite de l'article par cyril SQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULLSQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULL par coq
Les fonctions d'agrégation comme MIN et MAX ignorent les valeurs NULL présentes dans le jeu de données sur lequel porte leur calcul, d'où le fameux message d'avertissement : Warning: Null value is eliminated by an aggregate or other SET operation...
Cliquez pour lire la suite de l'article par coq VOTEZ POUR WARNYGOVOTEZ POUR WARNYGO par Nicolas
La vidéo du projet Warnygo est disponible sur facebook et attend vos votes ! Pour rappel: Warnygo est une application Windows Phone 7 qui permet d'alerter tous utilisateurs inscrits qui se trouve dans la zone où se passe l'...
Cliquez pour lire la suite de l'article par Nicolas
Logiciels
sDEVIS-FACTURES vlPRO (3.8.0)SDEVIS-FACTURES VLPRO (3.8.0)sDEVIS-FACTURES vlPRO a été mis au point pour permettre besoins des particuliers, créateurs, entr... Cliquez pour télécharger sDEVIS-FACTURES vlPRO LettresFaciles (5.6.0)LETTRESFACILES (5.6.0)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles MyPlanning 2010 (5.6.0)MYPLANNING 2010 (5.6.0)MyPlanning 2010 permet de créer des plannings sous la représentation de diagrammes. Plannings pré... Cliquez pour télécharger MyPlanning 2010 Emicsoft Mac DVD en iPad Convertisseur (3.1.16)EMICSOFT MAC DVD EN IPAD CONVERTISSEUR (3.1.16)Emicsoft Mac DVD en iPad Convertisseur, logiciel professionnel de convertir les fichiers DVD en i... Cliquez pour télécharger Emicsoft Mac DVD en iPad Convertisseur Emicsoft ipad ménager pour mac (3.1.08)EMICSOFT IPAD MéNAGER POUR MAC (3.1.08)Emicsoft ipad ménager pour mac est spécialement conçu pour les utilisateurs Mac pour copier des f... Cliquez pour télécharger Emicsoft ipad ménager pour mac
|