OVH Cloud OVH Cloud

tester la presence d'une image

5 réponses
Avatar
olivier
Bonjour à tous,

Depuis quelques mois je me bat afin de tester la presence d'une image
à partir d'un lien http://monsite/monimage.jpg, mon image n'est pas sur le
disque
du serveur mais sur un autre serveur.
Alors la commande fileexists(Server.mapPath(monpath)) ne fonctionne pas.

Avez vous une idée pour tester si mon image est presente ou valide.

Je ne veux pas faire de bidouille du genre , if monchamp.monimage=
string.Empty car cela
ne veut rien , il se peut que mon genre soit rempli et que l'image de soit
pas la.

Donc j'aimerais avoir un code qui ressemenble à cela
If Exists("http://monsite/monimage.jpg")
Me.monimage.imageurl ="http://monsite/monimage.jpg"
Else
Me.monimage.imageurl ="images/PhotoNonDisponible.jpg"
End If

je travail en asp.net Vb et je suis sur visual studio 2003

D'avance merci
Pour tout.

Olivier

5 réponses

Avatar
Patrice
Soit côté serveur :
- en faisant une requête web pour vérifier la présence de l'image
(System.Net.HttpWebRequest)

Soit côté client :
- en utilisant l'évènement onerror de la balise IMG pour mettre une image
fiable ou un message

--
Patrice

"olivier" a écrit dans le message de news:
%
Bonjour à tous,

Depuis quelques mois je me bat afin de tester la presence d'une image
à partir d'un lien http://monsite/monimage.jpg, mon image n'est pas sur le
disque
du serveur mais sur un autre serveur.
Alors la commande fileexists(Server.mapPath(monpath)) ne fonctionne pas.

Avez vous une idée pour tester si mon image est presente ou valide.

Je ne veux pas faire de bidouille du genre , if monchamp.monimage=
string.Empty car cela
ne veut rien , il se peut que mon genre soit rempli et que l'image de soit
pas la.

Donc j'aimerais avoir un code qui ressemenble à cela
If Exists("http://monsite/monimage.jpg")
Me.monimage.imageurl ="http://monsite/monimage.jpg"
Else
Me.monimage.imageurl ="images/PhotoNonDisponible.jpg"
End If

je travail en asp.net Vb et je suis sur visual studio 2003

D'avance merci
Pour tout.

Olivier




Avatar
Patrice
Soit côté serveur :
- en faisant une requête web pour vérifier la présence de l'image
(System.Net.HttpWebRequest)

Soit côté client :
- en utilisant l'évènement onerror de la balise IMG pour mettre une image
fiable ou un message

--
Patrice

"olivier" a écrit dans le message de news:
%
Bonjour à tous,

Depuis quelques mois je me bat afin de tester la presence d'une image
à partir d'un lien http://monsite/monimage.jpg, mon image n'est pas sur le
disque
du serveur mais sur un autre serveur.
Alors la commande fileexists(Server.mapPath(monpath)) ne fonctionne pas.

Avez vous une idée pour tester si mon image est presente ou valide.

Je ne veux pas faire de bidouille du genre , if monchamp.monimage=
string.Empty car cela
ne veut rien , il se peut que mon genre soit rempli et que l'image de soit
pas la.

Donc j'aimerais avoir un code qui ressemenble à cela
If Exists("http://monsite/monimage.jpg")
Me.monimage.imageurl ="http://monsite/monimage.jpg"
Else
Me.monimage.imageurl ="images/PhotoNonDisponible.jpg"
End If

je travail en asp.net Vb et je suis sur visual studio 2003

D'avance merci
Pour tout.

Olivier




Avatar
olivier
Bonjour patrice

En faisant une requete (je ne pas compris comme y proceder)

Par contre j'ai fait ce code

Try

CObj(e.Item.FindControl("photo_bien")).imageurl = "http://monsite/photo/" +
e.Item.DataItem("photo")

Catch ex As Exception

CObj(e.Item.FindControl("photo_bien")).imageurl = "images/photovide.gif"

End Try

Donc le resultat il affiche bien la photo quand elle est presente par contre
au niveau quand la photo n'est pas presente
il n'affiche pas CObj(e.Item.FindControl("photo_bien")).imageurl =
"images/photovide.gif" alors que le chemin est bon
car je l'ai testé.


As tu une piste ?

Olivier





"Patrice" a écrit dans le message de news:
%231P%
Soit côté serveur :
- en faisant une requête web pour vérifier la présence de l'image
(System.Net.HttpWebRequest)

Soit côté client :
- en utilisant l'évènement onerror de la balise IMG pour mettre une image
fiable ou un message

--
Patrice

"olivier" a écrit dans le message de news:
%
Bonjour à tous,

Depuis quelques mois je me bat afin de tester la presence d'une image
à partir d'un lien http://monsite/monimage.jpg, mon image n'est pas sur
le disque
du serveur mais sur un autre serveur.
Alors la commande fileexists(Server.mapPath(monpath)) ne fonctionne pas.

Avez vous une idée pour tester si mon image est presente ou valide.

Je ne veux pas faire de bidouille du genre , if monchamp.monimage=
string.Empty car cela
ne veut rien , il se peut que mon genre soit rempli et que l'image de
soit pas la.

Donc j'aimerais avoir un code qui ressemenble à cela
If Exists("http://monsite/monimage.jpg")
Me.monimage.imageurl ="http://monsite/monimage.jpg"
Else
Me.monimage.imageurl ="images/PhotoNonDisponible.jpg"
End If

je travail en asp.net Vb et je suis sur visual studio 2003

D'avance merci
Pour tout.

Olivier








Avatar
Patrice
Je ne vois pas ce que tu veux dire. A priori tu mets absolument ce que tu
veux dans imageurl. Il n'y a aucun contrôle d'aucune sorte.

Ce que fais ton code c'est si pour une raison *quelconque* il échoue (par
exemple le champ est NULL ou n'existe tout simplement pas dans DataItem mais
la présence du fichier n'est absolument pas vérifiée), c'est ce qu'il y a
dans le catch qui est exécuté.

Pour HttpWebRequest, voir par exemple :
http://www.techheadbrothers.com/DesktopDefault.aspx?tabindex=2&tabid&AId=3
(éventuellement une requête HEAD permettrait peut-être de ne pas récupérer
toute la page)

Pour l'évènement onError sur la balise IMG voir :
http://perso.wanadoo.fr/thecoolpage/prog/javascript/evenements.htm#12

--
Patrice

"olivier" a écrit dans le message de news:

Bonjour patrice

En faisant une requete (je ne pas compris comme y proceder)

Par contre j'ai fait ce code

Try

CObj(e.Item.FindControl("photo_bien")).imageurl = "http://monsite/photo/"
+ e.Item.DataItem("photo")

Catch ex As Exception

CObj(e.Item.FindControl("photo_bien")).imageurl = "images/photovide.gif"

End Try

Donc le resultat il affiche bien la photo quand elle est presente par
contre au niveau quand la photo n'est pas presente
il n'affiche pas CObj(e.Item.FindControl("photo_bien")).imageurl =
"images/photovide.gif" alors que le chemin est bon
car je l'ai testé.


As tu une piste ?

Olivier





"Patrice" a écrit dans le message de news:
%231P%
Soit côté serveur :
- en faisant une requête web pour vérifier la présence de l'image
(System.Net.HttpWebRequest)

Soit côté client :
- en utilisant l'évènement onerror de la balise IMG pour mettre une image
fiable ou un message

--
Patrice

"olivier" a écrit dans le message de news:
%
Bonjour à tous,

Depuis quelques mois je me bat afin de tester la presence d'une image
à partir d'un lien http://monsite/monimage.jpg, mon image n'est pas sur
le disque
du serveur mais sur un autre serveur.
Alors la commande fileexists(Server.mapPath(monpath)) ne fonctionne pas.

Avez vous une idée pour tester si mon image est presente ou valide.

Je ne veux pas faire de bidouille du genre , if monchamp.monimage=
string.Empty car cela
ne veut rien , il se peut que mon genre soit rempli et que l'image de
soit pas la.

Donc j'aimerais avoir un code qui ressemenble à cela
If Exists("http://monsite/monimage.jpg")
Me.monimage.imageurl ="http://monsite/monimage.jpg"
Else
Me.monimage.imageurl ="images/PhotoNonDisponible.jpg"
End If

je travail en asp.net Vb et je suis sur visual studio 2003

D'avance merci
Pour tout.

Olivier












Avatar
olivier
Bonjour patrice,

Je me suis trouvé un petit code qui fonctionne et je voulais faire profiter
la communauté.

Dim url As String
url = "http://www.monsite.com/photo/" + e.Item.DataItem("photo")
Dim reader As IO.StreamReader 'on crée un objet streamreader
Try
Dim hwebrequest As System.Net.HttpWebRequest =
System.Net.HttpWebRequest.Create(url) 'on crée la requete web
Dim hwebresponse As System.Net.HttpWebResponse = hwebrequest.GetResponse 'on
crée un objet de reponse a notre requete reader = New
IO.StreamReader(hwebresponse.GetResponseStream) 'on redefini notre
streamreader avec la reponse à la requete en argument
CObj(e.Item.FindControl("photo_bien")).imageurl = Trim(Url)
reader.Close() 'on ferme l'objet
Catch ex As Exception
CObj(e.Item.FindControl("photo_bien")).imageurl = "../images/photovide.gif"
End Try

Olivier


"Patrice" a écrit dans le message de news:

Je ne vois pas ce que tu veux dire. A priori tu mets absolument ce que tu
veux dans imageurl. Il n'y a aucun contrôle d'aucune sorte.

Ce que fais ton code c'est si pour une raison *quelconque* il échoue (par
exemple le champ est NULL ou n'existe tout simplement pas dans DataItem
mais la présence du fichier n'est absolument pas vérifiée), c'est ce qu'il
y a dans le catch qui est exécuté.

Pour HttpWebRequest, voir par exemple :
http://www.techheadbrothers.com/DesktopDefault.aspx?tabindex=2&tabid&AId=3
(éventuellement une requête HEAD permettrait peut-être de ne pas récupérer
toute la page)

Pour l'évènement onError sur la balise IMG voir :
http://perso.wanadoo.fr/thecoolpage/prog/javascript/evenements.htm#12

--
Patrice

"olivier" a écrit dans le message de news:

Bonjour patrice

En faisant une requete (je ne pas compris comme y proceder)

Par contre j'ai fait ce code

Try

CObj(e.Item.FindControl("photo_bien")).imageurl = "http://monsite/photo/"
+ e.Item.DataItem("photo")

Catch ex As Exception

CObj(e.Item.FindControl("photo_bien")).imageurl = "images/photovide.gif"

End Try

Donc le resultat il affiche bien la photo quand elle est presente par
contre au niveau quand la photo n'est pas presente
il n'affiche pas CObj(e.Item.FindControl("photo_bien")).imageurl =
"images/photovide.gif" alors que le chemin est bon
car je l'ai testé.


As tu une piste ?

Olivier





"Patrice" a écrit dans le message de news:
%231P%
Soit côté serveur :
- en faisant une requête web pour vérifier la présence de l'image
(System.Net.HttpWebRequest)

Soit côté client :
- en utilisant l'évènement onerror de la balise IMG pour mettre une
image fiable ou un message

--
Patrice

"olivier" a écrit dans le message de news:
%
Bonjour à tous,

Depuis quelques mois je me bat afin de tester la presence d'une image
à partir d'un lien http://monsite/monimage.jpg, mon image n'est pas sur
le disque
du serveur mais sur un autre serveur.
Alors la commande fileexists(Server.mapPath(monpath)) ne fonctionne
pas.

Avez vous une idée pour tester si mon image est presente ou valide.

Je ne veux pas faire de bidouille du genre , if monchamp.monimage=
string.Empty car cela
ne veut rien , il se peut que mon genre soit rempli et que l'image de
soit pas la.

Donc j'aimerais avoir un code qui ressemenble à cela
If Exists("http://monsite/monimage.jpg")
Me.monimage.imageurl ="http://monsite/monimage.jpg"
Else
Me.monimage.imageurl ="images/PhotoNonDisponible.jpg"
End If

je travail en asp.net Vb et je suis sur visual studio 2003

D'avance merci
Pour tout.

Olivier