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
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
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
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|