Encoder base64 un fichier jpg

Résolu
jpb14 Messages postés 18 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 22 janvier 2013 - 1 avril 2008 à 14:26
jpb14 Messages postés 18 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 22 janvier 2013 - 2 avril 2008 à 15:19
bonjour,
Pour faire un upload vers un serveur d'images, j'utilise une méthode xmlrpcUpload exportée parle serveur.
Le 1° paramètre de la méthode est le contenu du fichier image encodé base64.
En php, cela donne
        $client->query('apiXml.xmlrpcUpload',base64_encode(file_get_contents($_FILES['up_img']['tmp_name'])),$_FILES['up_img']['name'],$_REQUEST['titre'],$_REQUEST['description'],    "$idZimagez");

en VB6, j'utilise la dll vbXMLRPC, mais je n'arrive pas à passer correctement le premier paramètre.
Quelqu'un sait t'il faire cela ?
Merci
JPB

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
1 avril 2008 à 14:55
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
1 avril 2008 à 15:33
ne fais pas de boucle pour la lecture, c'est contre-performant.

Dim bFile() As Byte
Open "c:\temp\foto-1343541.jpg" For Binary As #1
ReDim bFile(LOF(1))
Get #1,, bFile
Close #1

sinon, pas vu de détails concernant apiXml....
3
jpb14 Messages postés 18 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 22 janvier 2013
1 avril 2008 à 15:25
pour l'encodage, j'ai trouvé ceci:
http://www.nonhostile.com/howto-encode-decode-base64-vb6.asp.
idem ce que tu m'indiques:
Public Function Base64Enc(ByRef vxbData() As Byte) As String
    With CreateObject("MSXML.DOMDocument").createElement("Base64")
        .dataType = "bin.base64"
        .nodeTypedValue = vxbData
        Base64Enc = .Text
    End With
End Function

mon problème est plutôt du côté de la création du tableau vbxData().
j'ai fait ainsi. chez moi il s'appelle bFile():

    Dim b As Byte
    Dim bFile() As Byte
    Dim a As Integer
    Open "c:\temp\foto-1343541.jpg" For Binary As #1
    ReDim bFile(LOF(1))
    For a = 1 To LOF(1)
        Get #1, a, b
        bFile(a) = b
    Next a
    Close #1

Et c'est sans doute là que ça coince ....

Je n'ai pas de déclaration d'API avec cette dll    vbXMLRPC
côté serveur, il y a une API    www.zimagez.com/apiXml.php qui exporte entre autres la méthode xmlrpcUpload
cette méthode attend 4 paramètres string. Le premier est celui que j'évoque ici ..les autres sont des chaines de caratères sans pb.
merci de ton aide
JPB
0
jpb14 Messages postés 18 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 22 janvier 2013
1 avril 2008 à 17:17
Je poursuis mes investigations avec la collaboration du support de chez zimagez.com et de l'auteur de la library vbXMLRPC.dll.
 Dès que j'aurais mis au point, je mettrais une contribution sur le site, parce qu'il n'y a pas grand chose sur la mise en oeuvre de la technologie XMLRPC avec VB.
Merci de ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jpb14 Messages postés 18 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 22 janvier 2013
2 avril 2008 à 15:19
C'est bon ..ça fonctionne bien.
J'ai utilisé la modification de code proposée et une fonction EncodeBase64.
Et surtout j'ai corrigé un des paramètres attendus par la méthode du serveur php (le nom du fichier image ... avec son extension !!)
Je prépare un code exemple pour l'utilisation de XMLRPC (webservice) en VB6
0