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

  1. #1
    Candidat au Club
    Homme Profil pro
    Directeur PME
    Inscrit en
    mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur PME
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mai 2013
    Messages : 8
    Points : 3
    Points
    3

    Par défaut Tester si une image existe en ligne grace à son URL

    Bonjour à tous et à toutes et MERCI par avance pour votre aide précieuse!

    Je suis Frédéric, mes compétences en développement ne sont pas extra ordinaires, mais j'adore ça.

    J'ai besoin, dans le cadre d'un import de produits sur une boutique en ligne de vérifier si l'image correspondant à mon produits est disponible sur nos serveurs ou non afin de pouvoir charger une image de remplacement si cela est nécessaire.

    J'ai l'impression d'avoir tout essayer depuis trois jours (ce n'est forcément pas le cas!) et je ne m'en sors pas...

    Pourriez-vous svp me donner le code VB6 qui pourrait répondre à cette demande, ainsi que les éventuelles références à ajouter à mon projet svp?

    Voici une URL valide :

    https://www.cvs-mediatheques.com/hom...2/1029322z.jpg

    et une qui ne l'est pas :

    https://www.cvs-mediatheques.com/hom...4/1141324z.jpg

    MERCI PAR AVANCE A TOUS ET A TOUTES !!!

  2. #2
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 662
    Points : 10 267
    Points
    10 267

    Par défaut

    Salut

    Une façon de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    On Error Resume Next
    Picture1.Picture = LoadPicture("chemin non valide")
    If Err Then
        On Error Resume Next
        Picture1.Picture = LoadPicture("C:\PersoFrancis\PetitPersonage3.bmp")
        If Err Then
            On Error Resume Next
            MsgBox "Alors là, c'est la catastrophe", vbCritical
        End If
    End If
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Candidat au Club
    Homme Profil pro
    Directeur PME
    Inscrit en
    mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur PME
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mai 2013
    Messages : 8
    Points : 3
    Points
    3

    Par défaut Salut

    Merci beaucoup pour ta réponse et pour ton aide.

    L’image est sur le net, à l’adresse url que j’ai posté dans mon premier message, pas en local. Je ne veux pas la télécharger, mais juste savoir si elle existe.
    Du coup je ne pense pas pouvoir utiliser LoadPicture.
    En plus mon traitement portera sur plusieurs milliers de fichiers, il faut donc que je réduise au maximum le temps de traitement.

    Merci beaucoup.

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    7 446
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 7 446
    Points : 10 729
    Points
    10 729

    Par défaut

    Salut,

    Très très longtemps que je n'ai plus fait de VB, mais de toute façon ce n'est pas un problème de VB.

    Documente-toi par exemple sur la récupération de la taille d'un fichier : s'il n'existe pas --> erreur, s'il existe tu récupéreras une valeur > à 0.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 662
    Points : 10 267
    Points
    10 267

    Par défaut

    Salut

    En adaptant cela doit pouvoir faire:
    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
    Option Explicit
     Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
     Private Const INTERNET_OPEN_TYPE_DIRECT = 1
     Private Const INTERNET_OPEN_TYPE_PROXY = 3
     
     Private Const scUserAgent = "VB OpenUrl"
     Private Const INTERNET_FLAG_RELOAD = &H80000000
     
     Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
     (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
     ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
     
     Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" _
     (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, _
     ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
     
     Private Declare Function InternetReadFile Lib "wininet.dll" _
     (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _
     lNumberOfBytesRead As Long) As Integer
     
     Private Declare Function InternetCloseHandle Lib "wininet.dll" _
     (ByVal hInet As Long) As Integer
     
     
    Private Function VerifFichierExist(Url As String) As Boolean
        Dim hOpen               As Long
        Dim hOpenUrl            As Long
        Dim sUrl                As String
        Dim bDoLoop             As Boolean
        Dim bRet                As Boolean
        Dim sReadBuffer         As String * 2048
        Dim lNumberOfBytesRead  As Long
        Dim sBuffer             As String
     
        sUrl = Url
        hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
        hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
     
        bDoLoop = True
        While bDoLoop
            sReadBuffer = vbNullString
            bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
            sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
            If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
        Wend
        If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
        If hOpen <> 0 Then InternetCloseHandle (hOpen)
        If InStr(sBuffer, "404 Not Found") Then VerifFichierExist = False Else VerifFichierExist = True
     
    End Function
     
    Private Sub Form_Load()
    MsgBox "Fichier 1029322z.jpg trouvé = " & VerifFichierExist("https://www.cvs-mediatheques.com/home/notices/0/322/1029322z.jpg")
    MsgBox "Fichier nexistepas.jpg trouvé = " & VerifFichierExist("https://www.cvs-mediatheques.com/home/notices/0/322/nexistepas.jpg")
    End Sub
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  6. #6
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 662
    Points : 10 267
    Points
    10 267

    Par défaut

    Re

    Si tu veux récupérer l'image, tu peux ajouter çà juste avant le End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        If VerifFichierExist = True Then
            'récupération du fichier image        
            Open "C:\PersoFrancis\A TESTftp\log.txt" For Binary Access Write As #1
            Put #1, , sBuffer
            Close #1
            'affichage        
            Picture1.Picture = LoadPicture("C:\PersoFrancis\A TESTftp\log.txt")
        End If
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  7. #7
    Candidat au Club
    Homme Profil pro
    Directeur PME
    Inscrit en
    mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur PME
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mai 2013
    Messages : 8
    Points : 3
    Points
    3

    Par défaut Bonsoir

    Super, merci.
    J’essaye ça dès demain.
    J’ai essayé plein de choses, mais jusqu’à maintenant ça fonctionne en http, mais jamais en https.
    Merci pour votre aide et je ne manquerai pas de vous dire si c’est Ok.
    Merci encore et bonne soirée.

  8. #8
    Candidat au Club
    Homme Profil pro
    Directeur PME
    Inscrit en
    mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur PME
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mai 2013
    Messages : 8
    Points : 3
    Points
    3

    Par défaut Désolé de répondre si tard...

    Bonjour,

    Je n'arrive décidément pas a résoudre mon problème...

    Le code fourni par ProgElec fonctionne parfaitement en HTTP, mais malheureusement pas en HTTPS...

    J'ai finalement réussi à "résoudre" mon problème en testant mon répertoire local, mais je n'y arrive pas en testant mon site web...

    Merci malgré tout pour votre aide!

    Du coup, je ne sais pas trop si je dois mettre "Résolu" ou pas...

    Très cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment tester qu'une image existe
    Par Salsaboy60 dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/01/2014, 15h06
  2. Tester si une image existe
    Par Thewil dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/06/2009, 17h06
  3. Tester si une image distante existe
    Par xtaze dans le forum Fichiers
    Réponses: 27
    Dernier message: 06/01/2006, 13h09
  4. MDI => Tester si une fenêtre existe déjà ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/04/2005, 22h41
  5. Tester qu'une date existe
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 11h37

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