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

IHM Discussion :

chemin d'image dossier local/dossier site internet


Sujet :

IHM

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut chemin d'image dossier local/dossier site internet
    Bonjour,

    Dans un formulaire, l'affichage d'une image dont le chemin est stocké dans un champ par ex. "c:\data\mesimages\image.jpg" ne pose pas de problème.

    Mais je n'arrive pas à afficher la même image avec un chemin faisant référence à un dossier situé sur un site internet, par ex. "http://www.monsite.fr/images/image.jpg".

    A noter que j'ai accès sans problème à cette image en tapant directement "http://www.monsite.fr/images/image.jpg" dans un navigateur...

    Si quelqu'un peut m'aider, je l'en remercie par avance.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour et bienvenue sur le forum.

    Si tu tentes d'insérer une image (en mode création) dans un contrôle image, en mettant une adresse internet dans la boîte de dialogue "Insérer une image", tu obtiens cette erreur :
    Vous ne pouvez pas utiliser une adresse internet. Tapez un chemin d'accès vers un emplacement sur votre ordinateur ou le réseau
    Il faut donc télécharger l'image à partir d'internet dans un fichier local.

    Voici un bout de code pour le faire.
    Il faut une référence Visual Basic à "Microsoft WinHTTP Services, version 5.1"
    (C:\WINDOWS\system32\WINHTTP.dll)
    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
    ' -------------------------------------------------------------------
    ' Fonction DownloadFile
    '
    ' Arguments :
    ' [E] strUrl            Adresse web fichier à télécharger
    ' [S] strFichierLocal   Fichier téléchargé
    ' [S] strStatusText     Statut http (texte) de l'opération
    '
    ' Valeur renvoyée : Statut (Entier long) http
    ' -------------------------------------------------------------------
    Private Function DownloadFile(strUrl As String, _
                                  ByRef strFichierLocal As String, _
                                  ByRef strStatusText As String) As Long
    Dim wq As WinHttp.WinHttpRequest
    Dim p As Long, lResult As Long
    Dim ff As Integer, byArray() As Byte
     
    ' Extraire nom fichier de l'url
    p = InStrRev(strUrl, "/") + 1
    ' Fichier pour sauvegarde en local
    strFichierLocal = Environ("TEMP") & "\" & Mid(strUrl, p, Len(strUrl) + 1 - p)
    ' Nouvelle requête HTTP
    Set wq = New WinHttpRequest
    wq.Open "GET", strUrl
    wq.Send
    ' Code et texte de retour de la requête http
    lResult = wq.Status
    strStatusText = wq.StatusText
    ' Si OK sauvegarder dans fichier local
    If wq.Status = 200 Then
       ff = FreeFile()
       byArray() = wq.ResponseBody
       If Len(Dir(strFichierLocal)) > 0 Then Kill strFichierLocal
       ' Ecrire dans fichier
       Open strFichierLocal For Binary As ff
       Put #ff, , byArray()
       Close #ff
       Set wq = Nothing
    Else
       strFichierLocal = ""
    End If
    DownloadFile = lResult
    End Function
    Exemple d'utilisation dans un formulaire.
    Le contrôle CheminEtFichier contient le chemin complet vers un fichier image.
    Code de l'événement "Sur activation" (déclenché après chaque changement d'enregistrement)
    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
    Private Sub Form_Current()
    Dim strFichier As String, strImage As String
    Dim lDownloadResult As Long, bIsWebFile As Boolean
    Dim strStatutReqHttp As String
     
    On Error GoTo ErrH
     
    ' Chemin d'origine vers fichier image
    strFichier = Nz(Me.CheminEtFichier, "")
    If Len(strFichier) = 0 Then Exit Sub
     
    ' Chemin complet qui sera utilisé pour le contrôle image
    ' Par défaut = fichier origine
    strImage = strFichier
     
    ' Si fichier origine = adresse web , télécharger 
    If strFichier Like "http://*" Then
       bIsWebFile = True
       lDownloadResult = DownloadFile(strFichier, strImage, strStatutReqHttp)
       If lDownloadResult <> 200 Then Err.Raise 512 + 1
    End If
     
    ' Changer le fichier source du contrôle image
    Me.MonCtlImage.PictureType = 1
    Me.MonCtlImage.Picture = strImage
     
    ' Supprimer fichier temporaire si besoin
    If bIsWebFile And Len(strImage) > 0 Then
       If Len(Dir(strImage)) > 0 Then Kill strImage
    End If
    Exit Sub
     
    ErrH:
    Select Case Err.Number
        Case 512 + 1
        MsgBox strStatutReqHttp & vbCrLf & "url : " & strFichier, , "Erreur http " & lDownloadResult
     
        Case Else
        MsgBox "Erreur No " & Err.Number & " : " & Err.Description
    End Select
    End Sub
    A chaque changement d'enregistrement, le chemin complet vers le fichier image est lu à partir du contrôle CheminEtFichier.
    S'il commence par http:// il est téléchargé.
    Ensuite l'image du contrôle image MonCtlImage est mise à jour.

    A+

Discussions similaires

  1. [HTML 5] Chemin d'accès à un dossier local
    Par max-mag dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/02/2015, 17h45
  2. Redirection page local vers site internet
    Par Yazza dans le forum Langage
    Réponses: 6
    Dernier message: 08/04/2014, 16h57
  3. Réponses: 2
    Dernier message: 06/06/2013, 12h02
  4. Réponses: 0
    Dernier message: 16/04/2012, 18h43
  5. partager un dossier local sur internet
    Par Yepazix dans le forum Windows 7
    Réponses: 6
    Dernier message: 31/07/2011, 21h54

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