Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Telechargement image

22 réponses
Avatar
Jean Claude
Bonjour

Dans une appli Web je veux télécharger une image sur mon serveur avec un
FileUpload
mon appli fonctionne. Par contre quand le fichier à télecharger est en
.Jpeg, je voudrais le telecharger en .gif

ESt-ce possible ?

Merci pour vos réponses
J claude

2 réponses

1 2 3
Avatar
Jean Claude
Merci Patrice

Pour ton aide et surtout pour ta patience.
Cela fonctionne, j'ai juste un beug quand il y a plusieurs fichiers trouvés
: 102.gif et 102.jpg

Enfin je veillerai à ce qu'il n'y ai pas plusieurs fichiers

Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
ODq%
Cela pourrait donc donner quelque chose comme :

Private Function GetImage(ByVal AnnonceID As Integer) As String
' Dossier des images
Dim DirectoryInfo As New DirectoryInfo(Server.MapPath("~/images"))
' Liste des fichiers de ce dossier correspondants à l'annonce
Dim Files As FileInfo() = DirectoryInfo.GetFiles(AnnonceID.ToString
& ".*")
Select Case Files.Length
Case 0
' Image par défaut si rien n'est trouvé
Return "~/images/default.jpg"
Case 1
' Image de l'annonce si un fichier est trouvé
Return "~/images/" & Files(0).Name
Case Else
' Erreur si plusieurs fichiers sont trouvés
Throw New Exception("Plusieurs images pour la même annonce
!")
End Select
End Function

Protected Sub form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles form1.Load
Image1.ImageUrl = GetImage(11) ' Image de l'annonce 11
End Sub

"Jean Claude" a écrit dans le message de
news: 4713380a$0$5085$
Par pitié Patrice

Peux-tu me code le code car je tourne en rond

je place dans mon Sub page_load
()GetImage
MonImage.Url=GetImage(AnnonceID)
End Sub
Function GetImage()
Dim MyPath as string="C:MonSiteMesImages"
Dossier=New System.IO.DirectoryInfo(MyPath)
Return Dossier.GetFiles(AnnonceID & ".*")(0)
End Function

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Comme je disais c'est DirectoryInfo (sans les parenthèses qui déclarent
un tableau). Avec FileInfo plus les parenthèses tu as donc bien un
message qui indique que tu essaies de mettre un DirectoryInfo dans une
variable que tu as déclaré comme un tableau de FileInfo.

Et il s'agit d'une fonction donc déclarée avec le mot "function" et non
pas le mot "sub". Le mot sub introduit une procédure qui ne peut donc
pas retourner de valeur ce que signale le message d'erreur.

Je ne sais pas trop quels sont les meilleurs sites d'initiation mais la
doc contient également un "guide de programmation" qui devrait aider à
prendre en main les éléments fondamentaux du langage :
http://msdn2.microsoft.com/fr-fr/library/y4wf33f0(VS.80).aspx


--
Patrice


"Jean Claude" a écrit dans le message
de news: 4713176f$0$5113$
Bonjour Patrice

J'ai ajouté Dim dossier as FileInfo()

Et j'ai les messages suivants :
une valeur de type System.IO.DirectoryInfo ne peut pas etre convertie
en tableau à 1 dimension de System.IO.FileInfo

et sur la ligne Return :
l'instruction Return dans un sub ou un Set ne peut pas retourner de
valeur

Je suis allé voir sur l'adresse indiquée, mais je n'y comprend rien

Je ne sais plus quoi faire
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: ut$
Oui c'est cela. Dossier est un System.IO.DirectoryInfo. Voir :
http://msdn2.microsoft.com/fr-fr/library/8he88b63(VS.80).aspx. Tu peux
aussi tester le nombre de réponses retourné par GetFiles pour
retourner l'emplacement d'une image générique si l'image correspondant
à une annonce n'est pas trouvée.

Ma préférence personnelle serait de stocker l'extension en base au
moment du dépôt ce qui permettrait de calculer directement le nom de
l'image à partir des seules données de chaque annonce (j'imagine que
les annonces sont déjà dans une base ?).

Rien à voir avec le sujet mais une fois que c'est ok tu pourras aussi
éventellement éviter l'emplacement "en dur" (par exemple
Server.MapPath("~/mesimages") permet d'avoir le nom physique
correspondant à un emplacement de ton site web quelle soit
l'emplacement où le site est installé).

Bonne continuation.

--
Patrice


"Jean Claude" a écrit dans le message
de news: 470f6a4d$0$27380$
Tu veux dire

je place dans mon Sub page_load
()GetImage
MonImage.Url=GetImage(AnnonceID)
End Sub
ensuite
Sub GetImage()
Dossier As et comment je le déclare ?
Dossier=New System.IO.DirectoryInfo("C:MonSiteMesImages")
Return Dossier.GetFiles(AnnonceID & ".*")(0)
End sub

Est-ce bien cela ?
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %
Ok, donc je ferais une fonction qui me retourne l'URL de l'image
concernée par une annonce pour avoir dans le code de ma page (le
code est non testé et de mémoire) :

MonImage.Url=GetImage(AnnonceID)

La fonction GetImage pourrait faire quelque chose comme :
Dossier=New System.IO.DirectoryInfo(Racine) ' Recupérer le dossier
de base des images
Return Dossier.GetFiles(AnnonceID & ".*")(0) ' Retourne le fichier
qui corrrespond à l'annonce quel que soit son extension

Je n'ai pas mis les contrôles etc.. qui pourraient être utile (par
exemple retourner une image générique si le fichier n'existe pas).

Si les annonces sont stockées dans une base tu pourrais aussi
enregistrer l'extension lorsque le fichier est déposé ce qui
permettrait de générer directement le nom correct...

--
Patrice

"Jean Claude" a écrit dans le
message de news: 470f3476$0$25950$
Bonjour Patrice

Les images enregistrées sont stockées dans un repertoire et
renommée (par un numéro d'annonce) avec l'extension d'origine ex:
102.jpg.

Pour l'affichage sur le web, cette image apparait dans un giedview
avec l'annonce correspondante. Pour l'afficher, dans mon code il me
faut savoir si qu'elle est son extension

Jean claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %
Au temps pour moi ;-)

Je disais donc au lieu de rien :
- cette information n'est pas gardée dans une base ?

L'extension n'est à priori pas strictement nécessaire mais le
serveur web se base dessus pour indiquer le "type mime" de l'image
qui est censée être utilisée en priorité par le navigateur pour
connaître son type.

Le * ne sera pas accepté dans la page HTML (il sera indispensable
de ne pas mettre un nom "en dur") mais sans base de données, il
serait possible de faire qq chose comme :
- le fichier est enregistré (modifant éventuellement le nom selon
l'usage de l'image et en gardant l'extension). Les autres fichiers
de même nom mais avec une extension différente sont supprimés.
- au lieu de mettre le nom du fichier en dur, on passe par une
fonction qui regarde quel est le premier fichier qui contient un
format d'image accepté

Difficile d'en dire plus son connaitre le contexte exact. Les
différents utilisateurs déposent chacun leurs images ? Ils peuvent
déposer plusieurs images ? Si tu prévois ce genre de choses, il
deviendra de toute façon sans doute indispensable de répertorier
ces images (au moins leur chemin de stockage) dans une base pour
pouvoir produire ensuite la liste des images déposées ou empcher
que ces images ne soeint accessibles directement sur le web etc...

--
Patrice

"Jean Claude" a écrit dans le
message de news: 470f104c$0$27401$
Bonjopur Patrice

En fait je veux utiliser le fichier déposé par l'utilisateur sit
du gif, du jpg ou du bmp (pour l'afficher sur mon site après
l'avoir redimensionner).
Mais dans mon code quand je charge le fichier je précise
fichier.gif, donc ma question c'est est-il possible d'afficher ce
fichier comme par exemple : fichier.*, je ne sais pas comment
indiquer le fichier sans préciser une extension variable.

Merci pour ta réponse
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message
de news:
"Préciser le format" c'est-à-dire ?

Pourquoi ne pas utiliser le fichier déposé par l'utilisateur ?
(si l'utilisateur télécharge toto.gif on utilise toto.gif, si il
dépose tutu.jpg on utilise tutu .jpg etc...)

Ou explicite un peu ce que tu essaies de faire (par exemple je
croyais comprendre que tu utilisais déjà des fichier GIF ??)...

--
Patrice


"Jean Claude" a écrit dans le
message de news: 470e21b8$0$27409$
Bonjour et merci pour toute ces réponses

Effectivement j'ai fait le test et c'est pas exploitable sur
un site web.

Pour régler ce problème, est-il possible d'écrire du code qui
me permette d'afficher l'image sans préciser son format,
qu'elle soit Jpeg, gif ou autre ?

Merci pour vos réponses
Jean Claude
"jerome crevecoeur"
a
écrit dans le message de news:
%
Bonjour à tous,

En ce qui concernent les formats d'image, je préconiserais les
.png qui
permettent d'avoir la richesse de couleur du jpeg et la
transparence du gif.

Bill2 a écrit :
Patrice wrote:

De toute façon, je suis d'accord que ce n'est pas super
recommandé.
J'ai cru longtemps que ce n'était pas possible mais j'ai vu
il y a qq
temps un site qui me semblait expliquer que techniquement le
format
en est capable (sous réserve, je crois avoir compris qu'un
fichier
GIF peut utiliser 256 couleurs par palette mais peut utiliser
plusieurs "palettes" (image blocks ?) pour une même image,
par contre
le format étant basé sur une (ou des ?) palette(s) il devient
de
moins en moins peu compétitif au fur et à mesure de
l'accroissement
du nombre de couleurs par rapport à un format qui stocke et
compresse
directement la couleur de chaque pixel et ce n'est donc
généralement
pas géré dans les softs qui gèrent le GIF).




Sauf erreur de ma part, un fichier gif peut contenir plusieurs
images, et chacune de ces images peut etre associée à une
palette de 256 couleurs ...

Donc en faisant un gif animé avec un délai très court, avec
une même image utilisant des palettes différentes, on doit
pouvoir obtenir un résultat meilleur qu'une simple image de
256 couleurs
Mais bon, la taille en Ko d'une telle image ne fera pas le
poids face à un bon fichier jpg ...



















































Avatar
Patrice
Voilà donc on provoque volontairement une erreur.

L'idée était que lorsque l'utilisateur dépose un fichier, on supprime les
fichiers concernant la même annonce avec une extension image non prises en
charge.

Si plusieurs fichiers, il serait aussi possible de prendre par exemple le
plus récent.

Bonne continuation...

"Jean Claude" a écrit dans le message de
news: 47147b81$0$27377$
Merci Patrice

Pour ton aide et surtout pour ta patience.
Cela fonctionne, j'ai juste un beug quand il y a plusieurs fichiers
trouvés : 102.gif et 102.jpg

Enfin je veillerai à ce qu'il n'y ai pas plusieurs fichiers

Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
ODq%
Cela pourrait donc donner quelque chose comme :

Private Function GetImage(ByVal AnnonceID As Integer) As String
' Dossier des images
Dim DirectoryInfo As New DirectoryInfo(Server.MapPath("~/images"))
' Liste des fichiers de ce dossier correspondants à l'annonce
Dim Files As FileInfo() =
DirectoryInfo.GetFiles(AnnonceID.ToString & ".*")
Select Case Files.Length
Case 0
' Image par défaut si rien n'est trouvé
Return "~/images/default.jpg"
Case 1
' Image de l'annonce si un fichier est trouvé
Return "~/images/" & Files(0).Name
Case Else
' Erreur si plusieurs fichiers sont trouvés
Throw New Exception("Plusieurs images pour la même annonce
!")
End Select
End Function

Protected Sub form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles form1.Load
Image1.ImageUrl = GetImage(11) ' Image de l'annonce 11
End Sub

"Jean Claude" a écrit dans le message de
news: 4713380a$0$5085$
Par pitié Patrice

Peux-tu me code le code car je tourne en rond

je place dans mon Sub page_load
()GetImage
MonImage.Url=GetImage(AnnonceID)
End Sub
Function GetImage()
Dim MyPath as string="C:MonSiteMesImages"
Dossier=New System.IO.DirectoryInfo(MyPath)
Return Dossier.GetFiles(AnnonceID & ".*")(0)
End Function

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Comme je disais c'est DirectoryInfo (sans les parenthèses qui déclarent
un tableau). Avec FileInfo plus les parenthèses tu as donc bien un
message qui indique que tu essaies de mettre un DirectoryInfo dans une
variable que tu as déclaré comme un tableau de FileInfo.

Et il s'agit d'une fonction donc déclarée avec le mot "function" et non
pas le mot "sub". Le mot sub introduit une procédure qui ne peut donc
pas retourner de valeur ce que signale le message d'erreur.

Je ne sais pas trop quels sont les meilleurs sites d'initiation mais la
doc contient également un "guide de programmation" qui devrait aider à
prendre en main les éléments fondamentaux du langage :
http://msdn2.microsoft.com/fr-fr/library/y4wf33f0(VS.80).aspx


--
Patrice


"Jean Claude" a écrit dans le message
de news: 4713176f$0$5113$
Bonjour Patrice

J'ai ajouté Dim dossier as FileInfo()

Et j'ai les messages suivants :
une valeur de type System.IO.DirectoryInfo ne peut pas etre convertie
en tableau à 1 dimension de System.IO.FileInfo

et sur la ligne Return :
l'instruction Return dans un sub ou un Set ne peut pas retourner de
valeur

Je suis allé voir sur l'adresse indiquée, mais je n'y comprend rien

Je ne sais plus quoi faire
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: ut$
Oui c'est cela. Dossier est un System.IO.DirectoryInfo. Voir :
http://msdn2.microsoft.com/fr-fr/library/8he88b63(VS.80).aspx. Tu
peux aussi tester le nombre de réponses retourné par GetFiles pour
retourner l'emplacement d'une image générique si l'image
correspondant à une annonce n'est pas trouvée.

Ma préférence personnelle serait de stocker l'extension en base au
moment du dépôt ce qui permettrait de calculer directement le nom de
l'image à partir des seules données de chaque annonce (j'imagine que
les annonces sont déjà dans une base ?).

Rien à voir avec le sujet mais une fois que c'est ok tu pourras
aussi éventellement éviter l'emplacement "en dur" (par exemple
Server.MapPath("~/mesimages") permet d'avoir le nom physique
correspondant à un emplacement de ton site web quelle soit
l'emplacement où le site est installé).

Bonne continuation.

--
Patrice


"Jean Claude" a écrit dans le
message de news: 470f6a4d$0$27380$
Tu veux dire

je place dans mon Sub page_load
()GetImage
MonImage.Url=GetImage(AnnonceID)
End Sub
ensuite
Sub GetImage()
Dossier As et comment je le déclare ?
Dossier=New System.IO.DirectoryInfo("C:MonSiteMesImages")
Return Dossier.GetFiles(AnnonceID & ".*")(0)
End sub

Est-ce bien cela ?
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %
Ok, donc je ferais une fonction qui me retourne l'URL de l'image
concernée par une annonce pour avoir dans le code de ma page (le
code est non testé et de mémoire) :

MonImage.Url=GetImage(AnnonceID)

La fonction GetImage pourrait faire quelque chose comme :
Dossier=New System.IO.DirectoryInfo(Racine) ' Recupérer le dossier
de base des images
Return Dossier.GetFiles(AnnonceID & ".*")(0) ' Retourne le fichier
qui corrrespond à l'annonce quel que soit son extension

Je n'ai pas mis les contrôles etc.. qui pourraient être utile (par
exemple retourner une image générique si le fichier n'existe pas).

Si les annonces sont stockées dans une base tu pourrais aussi
enregistrer l'extension lorsque le fichier est déposé ce qui
permettrait de générer directement le nom correct...

--
Patrice

"Jean Claude" a écrit dans le
message de news: 470f3476$0$25950$
Bonjour Patrice

Les images enregistrées sont stockées dans un repertoire et
renommée (par un numéro d'annonce) avec l'extension d'origine ex:
102.jpg.

Pour l'affichage sur le web, cette image apparait dans un giedview
avec l'annonce correspondante. Pour l'afficher, dans mon code il
me faut savoir si qu'elle est son extension

Jean claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %
Au temps pour moi ;-)

Je disais donc au lieu de rien :
- cette information n'est pas gardée dans une base ?

L'extension n'est à priori pas strictement nécessaire mais le
serveur web se base dessus pour indiquer le "type mime" de
l'image qui est censée être utilisée en priorité par le
navigateur pour connaître son type.

Le * ne sera pas accepté dans la page HTML (il sera indispensable
de ne pas mettre un nom "en dur") mais sans base de données, il
serait possible de faire qq chose comme :
- le fichier est enregistré (modifant éventuellement le nom selon
l'usage de l'image et en gardant l'extension). Les autres
fichiers de même nom mais avec une extension différente sont
supprimés.
- au lieu de mettre le nom du fichier en dur, on passe par une
fonction qui regarde quel est le premier fichier qui contient un
format d'image accepté

Difficile d'en dire plus son connaitre le contexte exact. Les
différents utilisateurs déposent chacun leurs images ? Ils
peuvent déposer plusieurs images ? Si tu prévois ce genre de
choses, il deviendra de toute façon sans doute indispensable de
répertorier ces images (au moins leur chemin de stockage) dans
une base pour pouvoir produire ensuite la liste des images
déposées ou empcher que ces images ne soeint accessibles
directement sur le web etc...

--
Patrice

"Jean Claude" a écrit dans le
message de news: 470f104c$0$27401$
Bonjopur Patrice

En fait je veux utiliser le fichier déposé par l'utilisateur sit
du gif, du jpg ou du bmp (pour l'afficher sur mon site après
l'avoir redimensionner).
Mais dans mon code quand je charge le fichier je précise
fichier.gif, donc ma question c'est est-il possible d'afficher
ce fichier comme par exemple : fichier.*, je ne sais pas comment
indiquer le fichier sans préciser une extension variable.

Merci pour ta réponse
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message
de news:
"Préciser le format" c'est-à-dire ?

Pourquoi ne pas utiliser le fichier déposé par l'utilisateur ?
(si l'utilisateur télécharge toto.gif on utilise toto.gif, si
il dépose tutu.jpg on utilise tutu .jpg etc...)

Ou explicite un peu ce que tu essaies de faire (par exemple je
croyais comprendre que tu utilisais déjà des fichier GIF ??)...

--
Patrice


"Jean Claude" a écrit dans le
message de news: 470e21b8$0$27409$
Bonjour et merci pour toute ces réponses

Effectivement j'ai fait le test et c'est pas exploitable sur
un site web.

Pour régler ce problème, est-il possible d'écrire du code qui
me permette d'afficher l'image sans préciser son format,
qu'elle soit Jpeg, gif ou autre ?

Merci pour vos réponses
Jean Claude
"jerome crevecoeur"
a
écrit dans le message de news:
%
Bonjour à tous,

En ce qui concernent les formats d'image, je préconiserais les
.png qui
permettent d'avoir la richesse de couleur du jpeg et la
transparence du gif.

Bill2 a écrit :
Patrice wrote:

De toute façon, je suis d'accord que ce n'est pas super
recommandé.
J'ai cru longtemps que ce n'était pas possible mais j'ai vu
il y a qq
temps un site qui me semblait expliquer que techniquement le
format
en est capable (sous réserve, je crois avoir compris qu'un
fichier
GIF peut utiliser 256 couleurs par palette mais peut
utiliser
plusieurs "palettes" (image blocks ?) pour une même image,
par contre
le format étant basé sur une (ou des ?) palette(s) il
devient de
moins en moins peu compétitif au fur et à mesure de
l'accroissement
du nombre de couleurs par rapport à un format qui stocke et
compresse
directement la couleur de chaque pixel et ce n'est donc
généralement
pas géré dans les softs qui gèrent le GIF).




Sauf erreur de ma part, un fichier gif peut contenir
plusieurs images, et chacune de ces images peut etre associée
à une palette de 256 couleurs ...

Donc en faisant un gif animé avec un délai très court, avec
une même image utilisant des palettes différentes, on doit
pouvoir obtenir un résultat meilleur qu'une simple image de
256 couleurs
Mais bon, la taille en Ko d'une telle image ne fera pas le
poids face à un bon fichier jpg ...























































1 2 3