IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Excel 2011: upload de fichier en utilisant IE


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut Excel 2011: upload de fichier en utilisant IE
    Bonjour tout le monde.

    Je dois à l'aide de maccros envoyer un fichier sur mon serveur à travers IE8. J'utilisais auparavant (avec Excel 2003 et IE6) le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    '******************* upload - begin
    'Upload file using input type=file
    Sub UploadFile(DestURL As String, FileName As String, _
      Optional ByVal FieldName As String = "File")
      Dim sFormData As String, d As String
     
      'Boundary of fields.
      'Be sure this string is Not In the source file
      Const Boundary As String = "---------------------------0123456789012"
     
      'Get source file As a string.
      sFormData = GetFile(FileName)
     
      'Build source form with file contents
      d = "--" + Boundary + vbCrLf
      d = d + "Content-Disposition: form-data; name=""" + FieldName + """;"
      d = d + " filename=""" + FileName + """" + vbCrLf
      d = d + "Content-Type: application/upload" + vbCrLf + vbCrLf
      d = d + sFormData
      d = d + vbCrLf + "--" + Boundary + "--" + vbCrLf
     
      'Post the data To the destination URL
      IEPostStringRequest DestURL, d, Boundary
    End Sub
     
    'sends URL encoded form data To the URL using IE
    Sub IEPostStringRequest(URL As String, FormData As String, Boundary As String)
      'Create InternetExplorer
      Dim WebBrowser: Set WebBrowser = CreateObject("InternetExplorer.Application")
     
      'You can uncoment Next line To see form results
      'WebBrowser.Visible = True
     
      'Send the form data To URL As POST request
      Dim bFormData() As Byte
      ReDim bFormData(Len(FormData) - 1)
      bFormData = StrConv(FormData, vbFromUnicode)
     
      WebBrowser.Navigate URL, , , bFormData, _
        "Content-Type: multipart/form-data; boundary=" + Boundary + vbCrLf
      WebBrowser.visible = true
     
      Do While WebBrowser.busy
    '    Sleep 100
        DoEvents
      Loop
      WebBrowser.Quit
    End Sub
     
    'read binary file As a string value
    Function GetFile(FileName As String) As String
      Dim FileContents() As Byte, FileNumber As Integer
      ReDim FileContents(FileLen(FileName) - 1)
      FileNumber = FreeFile
      Open FileName For Binary As FileNumber
        Get FileNumber, , FileContents
      Close FileNumber
      GetFile = StrConv(FileContents, vbUnicode)
    End Function
    Or ce code ne marche plus entre IE8 et Excel 2011 .... C'est à cette instruction que ca bloque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      WebBrowser.Navigate URL, , , bFormData, _
        "Content-Type: multipart/form-data; boundary=" + Boundary + vbCrLf
    Je vois bien qu'il me lance la fenêtre IE, mais elle disparait ensuite, sans que je ne recoive aucune erreur.

    Si je fais uniquement cette commande ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      WebBrowser.Navigate URL
    La page est lancée mais bien entendu le fichier ne sera pas envoyé....

    Si quelqu'un a une idée de comment on peut faire, merci beaucoup.
    Cordialement.

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Par défaut
    Bonjour,

    A tout hazard as-tu essayé ceci:
    Remplace les "+" par "&"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WebBrowser.Navigate URL, , , bFormData, _
        "Content-Type: multipart/form-data; boundary=" & Boundary & vbCrLf
    A+

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    Non ça ne change rien ....

    C'est bizarre j'ai trouvé exactement le même code en Java et ça marche, juste pour Office 2011 non ......

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonsoir,
    Passe par WinHttp, IE

Discussions similaires

  1. Uploader des fichiers en utilisant MTOM
    Par Blunt dans le forum Services Web
    Réponses: 8
    Dernier message: 07/08/2011, 11h46
  2. [Upload] Upload un fichier sans utiliser $_File
    Par Delphi-ne dans le forum Langage
    Réponses: 10
    Dernier message: 14/09/2008, 20h11
  3. [Servlet] Upload de fichier utilisant FileUpload de Apache
    Par zekiller3 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 01/02/2008, 12h27
  4. Upload et download de fichier sans utiliser JSP
    Par RR instinct dans le forum Langage
    Réponses: 8
    Dernier message: 30/08/2006, 12h08
  5. Réponses: 35
    Dernier message: 29/05/2006, 08h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo