CONVERTIR RAPIDEMENT UN FICHIER UPLOADÉ (IMAGE) ET OBTENIR LES VALEURS DES CLEFS

Messages postés
15
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
26 mai 2010
- - Dernière réponse : arcade205
Messages postés
3
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
9 juillet 2007
- 22 déc. 2006 à 08:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31302-convertir-rapidement-un-fichier-uploade-image-et-obtenir-les-valeurs-des-clefs-convertbin2ascii

arcade205
Messages postés
3
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
9 juillet 2007
-
Bonjour à tous,

Je me suis permis de modifier la fonction GetKeyVal() car il lui manquait un p'ti quelque chose ...

En fait, comment fait'on si on a plusieurs valeurs pour la même Key ??? On boucle ;-)
Me direz vous, c'est idiot d'avoir plusieurs input dans un formulaire ayant le même nom ?!
Eh bien, je ne parle pas de ce cas mais si vous utilisez un liste à choix multiple, vous serez bien embêté de récupérer que la 1ère valeur ...

Donc j'ai juste ajouté une boucle & quelques commentaires :

Function GetKeyVal(psKey, psDefault, psMyAsciiData)
Dim lsRet : lsRet = ""
Dim lsMyAsciiData : lsMyAsciiData = psMyAsciiData
Dim lsHeaderCode : lsHeaderCode = Left(lsMyAsciiData, InStr(1, lsMyAsciiData, vbcrlf, 0) - 1)
Dim liPos : liPos = 0
Dim liBegin : liBegin = 0
Dim liCutData : liCutData = 0
Dim lbGo : lbGo = False

'On parcourt récursivevement lsMyAsciiData
Do While Not lbGo
liBegin = InStr(1, lsMyAsciiData, "name=""" & psKey & """", 0) 'On recherche notre Key

If liBegin > 0 Then 'Si on trouve notre Key
liPos = liBegin + Len("name=""" & psKey & """") + 4 'Position de début

liCutData = InStr(liPos - 1, lsMyAsciiData, lsHeaderCode, 0) - liPos - 2 'On récupère la taille de la valeur de notre Key

lsRet = lsRet & Mid(lsMyAsciiData, liPos, liCutData) & ", " 'On extrait la valeur de Key

lsMyAsciiData = Right(lsMyAsciiData, Len(lsMyAsciiData) - (liPos + liCutData)) 'On supprime la 1ère valeur de notre Key
Else
lbGo = True 'Sinon on sort de la boucle
End If
Loop

'On supprime le dernier ', ' sinon on renvoie la valeur par défault
If lsRet <> "" Then lsRet Left(lsRet, Len(lsRet) - 2) Else lsRet psDefault

GetKeyVal = lsRet
End Function

& encore merci à ObelixSuisse pour cette fonction de base.
arcade205
Messages postés
3
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
9 juillet 2007
-
Bonjour,

un grand merci pour ta source, les fonctions ConvertBin2Ascii() & GetKeyVal() me sont utiles à merveille !

Aligato.
AliBabNet
Messages postés
2
Date d'inscription
mardi 13 septembre 2005
Statut
Membre
Dernière intervention
7 juin 2006
-
Impeccable!

Bravo et merci Obelix, c'est le seul code valable et efficace que j'aie trouvé pour récupérer un upload + des champs de formulaire.

Avis aux visiteurs: foncez, c'est du bon! ;)
ObelixSuisse
Messages postés
15
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
26 mai 2010
-
Salut Alain...
Merci je n'avais pas vu cette option ;-)
cs_Alain Proviste
Messages postés
908
Date d'inscription
jeudi 26 juillet 2001
Statut
Modérateur
Dernière intervention
1 février 2015
1 -
sais tu que tu peux éditer ton code ?
:)